example c# asp.net x509certificate

x509certificate2 c# example



Cómo recuperar todos los certificados en su X509Store (4)

Agregue esta línea de código a la segunda línea y vea cómo funciona:

store.Open(OpenFlags.ReadOnly);

y luego esto en la parte inferior :):

store.Close();

Estoy usando el siguiente código para recuperar todos los certificados en mi PC desde una aplicación web asp.net. La colección de certificados está vacía, y no puedo entender por qué.

Intenté suplantar mi propia cuenta de usuario y tampoco tuve éxito. ¿Qué estoy haciendo mal?

var store = new X509Store(StoreLocation.CurrentUser); //StoreLocation.LocalMachine fails too var certificates = store.Certificates; foreach (var certificate in certificates) { var friendlyName = certificate.FriendlyName; Console.WriteLine(friendlyName); } //original problem: fetch a single certificate by its subject name X509Certificate2 clientCertificate = CertificateUtility.GetCertificate(StoreName.My, StoreLocation.CurrentUser, "CN=mypc.domainname"); //returns null :(


Busque en su almacén de certificados (complemento mmc / add / certificado / mi cuenta de usuario / Certificados - Usuario actual / Personal / Certificados) para ver el nombre del sujeto para asegurarse de que "CN = mypc.domainname" es lo que realmente está en el certificado.

"CN=mypc.domainname"

vs

"CN = mypc.domainname"

... etc


Puedo encontrar certificados por ...

var certificateStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine); certificateStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); var certificateCollection = certificateStore.Certificates.Find(X509FindType.FindBySubjectName, "mycert.me.com",false); certificateStore.Close(); var certificate = certificateCollection[0];

certificateCollection tendrá los certificados que me interesan ... si es solo uno, obtengo el primer elemento de la colección.


Todo en uno ...

Tengo un servidor apache (xamp) con https. Accedo a través de https y c # (vs2010) a una página de carga de PHP

  1. Instale el certificado de, por ejemplo, en el certificado de la carpeta personal, por ejemplo.

  2. Para ver los certificados, ejecute "certmgr.msc", al menos en win7

Listado de certificados personales

var store = new X509Store(StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); var certificates = store.Certificates; foreach (var certificate in certificates) { var friendlyName = certificate.FriendlyName; var xname = certificate.GetName(); //obsolete Console.WriteLine(friendlyName); } store.Close();

Encontrar certificado específico

string certificateName = "CN=localhost"; //name found in the var xname X509Store storex = new X509Store(StoreName.My, StoreLocation.CurrentUser); storex.Open(OpenFlags.ReadOnly); X509Certificate2Collection certificatesx = storex.Certificates.Find(X509FindType.FindBySubjectName, certificateName, true); X509Certificate certificatex = certificates[0]; storex.Close();