Boa tarde pessoal.
Estou desenvolvendo em C# um site que deve conter um login com certificado digital, devo utilizar os certificados tipo icp-brasil.
Fiz uma pagina que quando rodo localmente ela abre o repositório do certificado do windows e consigo recuperar o certificado normalmente, o meu problema é quando eu coloco essa página no servidor, ai o repositório que
abre é o do servidor e eu não consigo selecionar o meu certificado localmente, alguem tem um exemplo de como que é feito? ou sabe como que faz?
Assim eu consigo abrir os certificados da maquina aonde está rodando a página:
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);
if (Nome == "")
{
X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(collection2, "Certificado(s) Digital(is) disponível(is)", "Selecione o Certificado Digital para uso no aplicativo",
X509SelectionFlag.SingleSelection);
if (scollection.Count == 0)
{
_X509Cert.Reset();
}
else
{
_X509Cert = scollection[0];
}
}
else
{
X509Certificate2Collection scollection = (X509Certificate2Collection)collection2.Find(X509FindType.FindBySubjectDistinguishedName, Nome, false);
if (scollection.Count == 0)
{
_X509Cert.Reset();
}
else
{
_X509Cert = scollection[0];
}
}
store.Close();
return _X509Cert;