1/2 OFF: C#/Certificados digitais

84 views
Skip to first unread message

Guionardo Furlan

unread,
Aug 9, 2018, 3:27:29 PM8/9/18
to UniNFe
Boa tarde pessoal.

Grande ideia esse grupo novo, com categorias de discussão.

Minha questão é a seguinte: Do mesmo modo que o Uninfe usa o .net para seus processos, me baseei no código fonte dele para uma rotina interna no meu PAF, para assinatura de XML.
Meu trecho de código, para validação de um certificado usando um arquivo e senha é o abaixo:

string arquivo = @"A:\CERTIFICADO.PCX";
string senha = "123456";
try
{
  var certificado = new X509Certificate2(arquivo, senha);
  if (!certificado.Verify())
  {
   
Funcoes.Erro("Senha do certificado está incorreta!");
   
return false;
 
}
 
if (!certificado.Valid())
   
return false;
}
catch (Exception ex)
{
 
Funcoes.Erro("Erro na validação do certificado digital:\n" + ex.Message,
                       
"Erro Bloco X");
 
return false;
}
return true;

Este código funciona bem. Mas em alguns clientes, dá erro de validação da senha do certificado. Nestes casos, a senha está correta, pois é a mesma utilizada no Uninfe, mas mesmo assim causa uma exceção.
Acredito que seja algum detalhe de framework instalado no Windows do cliente, mas não sei onde procurar.
Minha aplicação usa o .net 4.5.2

Alguma sugestão sobre este problema? Como o Uninfe trata esta situação, visto que funciona em várias plataformas?

Grato pela ajuda

--
Guionardo Furlan
Desenvolvedor
Blumenau/SC
Reply all
Reply to author
Forward
0 new messages