Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

X509FindType (Enumeración)

Especifica el tipo de valor buscado por el método X509Certificate2Collection.Find.

Espacio de nombres:  System.Security.Cryptography.X509Certificates
Ensamblado:  System (en System.dll)
public enum X509FindType
Nombre de miembro Descripción
FindByThumbprint El parámetro findValue del método Find deberá ser una cadena que represente la huella digital del certificado.
FindBySubjectName El parámetro findValue del método Find deberá ser una cadena que represente el nombre del sujeto del certificado. Esta es una búsqueda menos concreta que la proporcionada por el valor de enumeración FindBySubjectDistinguishedName. Cuando se utiliza el valor FindBySubjectName, el método Find realiza una comparación de cadenas, sin distinción de mayúsculas y minúsculas, con el valor proporcionado. Por ejemplo, si se pasa "MiCertificado" al método Find, se encontrarán todos los certificados cuyo nombre de sujeto contenga esa cadena, sin que se tengan en cuenta otros valores del sujeto. La búsqueda por nombre distintivo proporciona resultados más precisos.
FindBySubjectDistinguishedName El parámetro findValue del método Find deberá ser una cadena que represente el nombre distintivo del sujeto del certificado. Esta es una búsqueda más concreta que la proporcionada por el valor de enumeración FindBySubjectName. Cuando se utiliza el valor FindBySubjectDistinguishedName, el método Find realiza una comparación de cadenas de nombres distintivos, sin distinción de mayúsculas y minúsculas. La búsqueda por nombre de sujeto proporciona resultados menos precisos.
FindByIssuerName El parámetro findValue del método Find deberá ser una cadena que represente el nombre del emisor del certificado. Esta es una búsqueda menos concreta que la proporcionada por el valor de enumeración FindByIssuerDistinguishedName. Cuando se utiliza el valor FindByIssuerName, el método Find realiza una comparación de cadenas, sin distinción de mayúsculas y minúsculas, con el valor proporcionado. Por ejemplo, si se pasa "MiEntidadEmisora" al método Find, se encontrarán todos los certificados cuyo nombre de emisor contenga esa cadena, sin que se tengan en cuenta otros valores del emisor.
FindByIssuerDistinguishedName El parámetro findValue del método Find deberá ser una cadena que represente el nombre distintivo del emisor del certificado. Esta es una búsqueda más concreta que la proporcionada por el valor de enumeración FindByIssuerName. Cuando se utiliza el valor FindByIssuerDistinguishedName, el método Find realiza una comparación de cadenas de nombres distintivos, sin distinción de mayúsculas y minúsculas. La búsqueda por nombre de emisor proporciona resultados menos precisos.
FindBySerialNumber El parámetro findValue del método Find deberá ser una cadena que represente el número de serie del certificado tal y como se muestra en la interfaz de usuario (UI). El número de serie deberá estar en orden inverso, puesto que se trata de un entero.
FindByTimeValid El parámetro findValue del método Find deberá ser un valor DateTime en hora local. Puede utilizar DateTime.Now para buscar todos los certificados actualmente válidos.
FindByTimeNotYetValid El parámetro findValue del método Find deberá ser un valor DateTime en hora local. El valor no tiene que ser necesariamente futuro. Por ejemplo, puede utilizar FindByTimeNotYetValid para encontrar certificados que eran válidos en el año actual tomando la intersección de los resultados de una operación Find para FindByTimeNotYetValid durante el último día del año pasado con los resultados de una operación Find para FindByTimeValid de DateTime.Now.
FindByTimeExpired El parámetro findValue del método Find deberá ser un valor DateTime en hora local. Por ejemplo, puede encontrar todos los certificados que serán válidos hasta el fin del año eliminando los resultados de una operación Find para FindByTimeExpired del último día del año de los resultados de una operación Find para DateTime.Now.
FindByTemplateName El parámetro findValue del método Find deberá ser una cadena que represente el nombre de plantilla del certificado como, por ejemplo, "AutorizaciónCliente". Un nombre de plantilla es una extensión de la versión 3 de X509 que especifica los usos del certificado.
FindByApplicationPolicy El parámetro findValue del método Find debe ser una cadena que represente el nombre descriptivo de la directiva de aplicación o el identificador de objeto (OID o Oid) del certificado. Por ejemplo, se puede utilizar "Sistema de archivos de cifrado" o "1.3.6.1.4.1.311.10.3.4". Cuando se vaya a adaptar una aplicación, se deberá utilizar el valor OID, puesto que el nombre descriptivo también se adapta.
FindByCertificatePolicy El parámetro findValue del método Find debe ser una cadena que represente el nombre descriptivo o el identificador de objeto (OID o Oid) de la directiva del certificado. El procedimiento recomendado es utilizar el OID como, por ejemplo, "1.3.6.1.4.1.311.10.3.4". Cuando se vaya a adaptar una aplicación, se deberá utilizar el OID, puesto que el nombre descriptivo también se adapta.
FindByExtension El parámetro findValue del método Find deberá ser una cadena que describa la extensión que se va a buscar. El identificador de objeto (OID) se utiliza normalmente para indicar al método Find que busque todos los certificados que tengan una extensión que coincida con el valor de OID.
FindByKeyUsage El parámetro findValue del método Find deberá ser una cadena que represente el uso de la clave o un entero que represente una máscara de bits que contenga todos los usos de clave solicitados. Para el valor de cadena sólo se puede especificar un uso de clave al mismo tiempo, pero se puede utilizar el método Find en una secuencia en cascada para obtener la intersección de los usos solicitados. Por ejemplo, el parámetro findValue se puede establecer en "KeyEncipherment" o en un entero (0x30 indica "KeyEncipherment" y "DataEncipherment"). También se pueden utilizar los valores de la enumeración X509KeyUsageFlags.
FindBySubjectKeyIdentifier El parámetro findValue del método Find deberá ser una cadena que represente el identificador de clave de sujeto en formato hexadecimal, como "F3E815D45E83B8477B9284113C64EF208E897112", tal y como se muestra en la interfaz de usuario (UI).

X509FindType identifica el tipo de valor proporcionado en el parámetro findValue para el método Find. Puede utilizar X509FindType para buscar en una colección X509Certificate2 por nombre de sujeto, huella digital, número de serie, intervalo de fechas válido u otro valor.

Puede utilizar una combinación de tipos de valor FindByTime para encontrar certificados que sean válidos en un intervalo de tiempo determinado. La unión de certificados devuelta mediante FindByTimeValid, FindByTimeNotYetValid y FindByTimeExpired, para una hora determinada, deberá representar todos los certificados de la colección consultada.

En el siguiente ejemplo se abre el almacén de certificados personales del usuario actual, se buscan sólo los certificados válidos, se permite que el usuario seleccione un certificado y, a continuación, se escribe la información del certificado en la consola. El resultado depende del certificado que se selecciona.


using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class CertSelect
{
	static void Main()
	{
		try
		{
			X509Store store = new X509Store("MY",StoreLocation.CurrentUser);
			store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
			X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
			X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid,DateTime.Now,false);
			X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select","Select a certificate from the following list to get information on that certificate",X509SelectionFlag.MultiSelection);
			Console.WriteLine("Number of certificates: {0}{1}",scollection.Count,Environment.NewLine);
				foreach (X509Certificate2 x509 in scollection)
				{
					byte[] rawdata = x509.RawData;
					Console.WriteLine("Content Type: {0}{1}",X509Certificate2.GetCertContentType(rawdata),Environment.NewLine);
					Console.WriteLine("Friendly Name: {0}{1}",x509.FriendlyName,Environment.NewLine);
					Console.WriteLine("Certificate Verified?: {0}{1}",x509.Verify(),Environment.NewLine);
					Console.WriteLine("Simple Name: {0}{1}",x509.GetNameInfo(X509NameType.SimpleName,true),Environment.NewLine);
					Console.WriteLine("Signature Algorithm: {0}{1}",x509.SignatureAlgorithm.FriendlyName,Environment.NewLine);
					Console.WriteLine("Private Key: {0}{1}",x509.PrivateKey.ToXmlString(false),Environment.NewLine);
					Console.WriteLine("Public Key: {0}{1}",x509.PublicKey.Key.ToXmlString(false),Environment.NewLine);
					Console.WriteLine("Certificate Archived?: {0}{1}",x509.Archived,Environment.NewLine);
					Console.WriteLine("Length of Raw Data: {0}{1}",x509.RawData.Length,Environment.NewLine);
					X509Certificate2UI.DisplayCertificate(x509);
					x509.Reset();
				}
			store.Close();
			}
		catch (CryptographicException)
			{
				   Console.WriteLine("Information could not be written out for this certificate.");
			}
		
	}
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar