Introducción
En este pequeño post vamos a ver como obtener los certificados digitales instalados en un ordenador desde C#.
¿Qué necesitas?
Para el ejemplo que voy a explicar he utilizado Visual Studio 2010, pero es completamente válido desde la versión 2005.
Para la clase que voy a crear he agregado la referencia al namespace System.Security.Cryptography.X509Certificates.
Obtener los certificados
Voy a definir una nueva clase que va a contener dos funciones:
– Obtención de los certificados
– Definición del almacén.
1: public class CertificateInfo
2: {
3: public static List<X509Certificate2> GetCertificatesList(X509Store store)
4: {
5: List<X509Certificate2> certificates = new List<X509Certificate2>();
6: if (store == null)
7: return null;
8: store.Open(OpenFlags.ReadOnly);
9: certificates.AddRange(store.Certificates.Cast<X509Certificate2>().ToList());
10: store.Close();
11:
12: return certificates;
13: }
14: public static X509Store CreateX509Store()
15: {
16: return new X509Store();
17: }
18: }
La función GetCertificatesList va a recibir un objeto de tipo X509Store que va a representar el almacén de los certificados que queremos obtener, y va a devolver una lista de objetos de tipo X509Certificate2 que van a representar toda la información relativa al certificado digital.
La función CreateX509Store nos va definir un nuevo objeto de tipo X509Store con la definición que nostros queramos aportarle.(Ver los distintos constructores existentes)
¿Cómo utilizar este código?
1: var store = CertificateInfo.CreateX509Store();
2: var certificates = CertificateInfo.GetCertificatesList(store);
Bueno espero que os sea de utilidad.
Un saludo!
Introducción Estoy haciendo un desarrollo que va a hacer uso de servicios web creados en Java. Pese a