Este artículo se tradujo de forma manual. 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

X509Certificate2Collection.Find (Método)

Busca un objeto X509Certificate2Collection utilizando los criterios de búsqueda especificados por la enumeración X509FindType y el objeto findValue.

Espacio de nombres:  System.Security.Cryptography.X509Certificates
Ensamblado:  System (en System.dll)
public X509Certificate2Collection Find(
	X509FindType findType,
	Object findValue,
	bool validOnly
)

Parámetros

findType
Tipo: System.Security.Cryptography.X509Certificates.X509FindType
Uno de los valores de X509FindType.
findValue
Tipo: System.Object
El criterio de búsqueda como objeto.
validOnly
Tipo: System.Boolean
true para que la búsqueda sólo pueda devolver certificados válidos; de lo contrario, false.
Excepción Condición
CryptographicException

findType no es válido.

Este método se utiliza para buscar objetos X509Certificate2 sin necesidad de interacción con el usuario. El método Find, por su parte, le permite al usuario seleccionar objetos X509Certificate2.

Tenga en cuenta que este método se puede utilizar en estilo de cascada o anidado, lo que restringe los criterios de búsqueda en cada llamada al método.

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


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