Olá amigos.. tenho um sistema multi-empresa, onde cada empresa tem seu certificado A3 para emissão de NFe.
No cadastro de cada empresa, eu tenho o número de série do certificado condizente a cada empresa, pois na hora de assinar a nota, eu carrego desta maneira:
ACBrNFe.Configuracoes.Certificados.NumeroSerie := DmDados.Query_Empresa.FieldByName('emp_numseriecertificado').value;
ACBrNFe.Configuracoes.Certificados.Senha := DmDados.Query_Empresa.FieldByName('emp_senhacertificado').value;
ACBrNFe.NotasFiscais.Assinar;
Bom, até ai tudo bem.. O problema é quando, eu tento assinar uma nota da empresa A, e o certificado que está no leitor é o certificado da empresa B.
Com isso, pergunto: existe alguma maneira de verificar qual é o número de série que está atualmente no leitor de cartão A3 para poder comparar? Se não for o da empresa selecionada no sistema, eu exibiria uma mensagem para o usuário trocar o certificado...
Obs.: Tenho visto algumas outras perguntas aqui no fórum referente a perca da chave privada do certificado. Sei que, após várias tentativas inválidas de autenticação no cartão A3, o mesmo é invalidado pelo próprio software do fabricante do cartão(pelo menos em algumas marcas).. Pois se o sistema ficar tentando assinar um xml, e no leitor há outro cartão "espetado", corre o risco de perca do cartão por número de tentativa inválido(senha erra), Isto faz sentido?
Obrigado!
Renato