¿Cómo puedo obtener información de certificado de atributos en .net?
Obteniendo certificados del almacenamiento:
X509Store almacenamiento = nuevo X509Store(“MY”, StoreLocation.CurrentUser);
almacenamiento.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
X509Certificate2Collection coleccion = (X509Certificate2Collection) almacenamiento.Certificates;
X509Certificate2Collection coleccionFiltro = (X509Certificate2Collection)coleccion.Find(X509FindType.FindByTimeValid, DateTime.Now, false);
X509Certificate2Collection coleccionSeleccionada = X509Certificate2UI.SelectFromCollection(coleccionFiltro, “Selección de certificado de prueba”, “Seleccione un certificado de la siguiente lista para obtener información sobre ese certificado”, X509SelectionFlag.MultiSelection);
foreach (X509Certificate2 x509 in coleccionSeleccionada){
Console.WriteLine(“Nombre Simple: {0}{1}”, x509.GetNameInfo(X509NameType.SimpleName, true), Environment.NewLine);
}
El certificado seleccionado tiene un certificado de atributo. ¿Cómo se obtienen los datos del certificado de atributo?
davy.ai
Puede obtener los datos del certificado de atributo usando la propiedad
X509Certificate2.Extensions
. Esta propiedad devuelve una colección de objetosX509Extension
, los cuales pueden ser usados para acceder a los datos del certificado de atributo. Por ejemplo:foreach (X509Extension extension in x509.Extensions)
{
if (extension.Oid.Value == "1.3.6.1.4.1.311.20.2")
{
// Obtener los datos del certificado de atributo
byte[] attributeCertificateData = extension.RawData;
}
}