encaminhando pelo site do grupo... as mensagens estã voltando.. alguém
já viu isso?
-----------------------
Ola Daniele,
tente usar este metodo:
Até onde eu ja vi, o subjectname tem as informações que você precisa.
esse metodo vai abrir a store, listar todos os certificados com o
proposito de assinatura digital e pegar o subject do primeiro que
encontrar.
o subject é uma string parecia com:
CN=XXXXXXXXX-CNPJ , S=UF, L=DESC-UF, OU=XXXXX, OU=CONTRIBUINTE,
OU=Secretaria da Receita Federal-SRF, O=ICP-Brasil, C=BR
as com XXX ou UF ou DES-CUF acima eu removi.
mas o que interessa é que a primeira posicao do array que o metodo vai
rtornar é CN=XXXXX onde XXXX é uma string que contem o cnpj que você
quer.
não sei se existe uma forma melhor de obter a informação.
se alguem souber ....
espero que ajude.
using
System.Security.Cryptography.X509Certificates;
......
public string[] getDadosCertificado()
{
string[] resultados = null;
//abre a store do usuario corrente
X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
store.Open(
OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)
store.Certificates;
X509Certificate2Collection listaCertificados = collection.Find
(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature,
true);
if(listaCertificados.Count > 0){
resultados = listaCertificados[0].Subject.Split(',');
}
return resultados;
}