using System.Security.Cryptography.X509Certificates;
X509Certificate2 oX509Cert = new X509Certificate2();
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection collection2 = (X509Certificate2Collection)collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, false);
X509Certificate2Collection scollection = (X509Certificate2Collection)collection2.Find(X509FindType.FindBySubjectName, "NOME DA EMPRESA \ PESSOA", false);
if (scollection.Count == 0)
oX509Cert = null;
else
oX509Cert = scollection[0];
No objeto oX509Cert é o objeto representativo de seu certificado digital no seu sistema. Geralmente esse tipo de certificado fica armazenado temporariamente na pasta Pessoal do Gerenciador de Certificados do Windows. Caso deseje visualizar qual o nome correto do certificado e realizar demais operações, vá em Iniciar, Executar e digite certmgr.msc. Uma tela como essa irá surgir:
11 comentários:
Pra que serve a variável collection1?
A collection1 guarde informações acerca da validade do certificado.
Muito bom, funcionou sem problemas!
Olá Thiago, parabéns pelo artigo.
Esse exemplo só funciona para aplicativos Desktop correto?
Fábio, funciona para web também contudo o certificado tem que ficar espetado no servidor web.
Olá Thiago,
Obrigado pelo retorno, mas a minha situação seria necessário que o certificado estivesse na máquina do cliente e fosse acessado via browser.
Fábio, no caso você deve criar um ActiveX, por exemplo, (em C# pode ser feito usando essa função, inclusive) que irá acessar o computador cliente fazendo a autenticação e busca do certificado.
Oi Thiago,
Não funcionou comigo, o servidor está com o token espetado, eu estou acessando-o pelo svn e não consigo obter o certificado. Ja tentei buscar pelo serial e pelo IssuerName, se vc tiver alguma dica eu agradeço
Artur
arturcostta@gmail.com
Artur,
Verifique se o sistema operacional está reconhecendo o token. Conforme especifiquei antes, vá em Iniciar, Executar e digite certmgr.msc. Veja se é listado o certificado e qual o nome correto.
Lembre-se que alguns certificados não funciona no Windows Server.
Olá ... Como posso saber quando o certificado não funciona no windows server?
Ester, se você já adquiriu o certificado realize o processo abaixo:
Em Iniciar, Executar e digite certmgr.msc. Veja se é listado o certificado adquirido.
Ou pelo próprio software que vem junto com o certificado. Há um aplicativo que já faz leitura...
Se ainda não comprou, leia as instruções do certificado que eles especificam qual o SO é suportado por eles.
Postar um comentário