X509FindType Énumération

Définition

Spécifie le type de valeur que la méthode Find(X509FindType, Object, Boolean) recherche.

public enum class X509FindType
public enum X509FindType
type X509FindType = 
Public Enum X509FindType
Héritage
X509FindType

Champs

Nom Valeur Description
FindByThumbprint 0

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant l’empreinte numérique du certificat.

FindBySubjectName 1

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom de l’objet du certificat. Il s’agit d’une recherche moins spécifique que celle fournie par la valeur d’énumération FindBySubjectDistinguishedName . À l’aide de la valeur, la FindBySubjectName méthode effectue une comparaison de chaînes ne respectant pas la Find(X509FindType, Object, Boolean) casse à l’aide de la valeur fournie. Par exemple, si vous passez « MyCert » à la Find(X509FindType, Object, Boolean) méthode, il recherche tous les certificats portant le nom de l’objet contenant cette chaîne, quelles que soient les autres valeurs de l’objet. La recherche par nom unique est une recherche plus précise.

FindBySubjectDistinguishedName 2

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom unique de l’objet du certificat. Il s’agit d’une recherche plus spécifique que celle fournie par la valeur d’énumération FindBySubjectName . À l’aide de la valeur, la FindBySubjectDistinguishedName méthode effectue une comparaison de chaînes ne respectant pas la Find(X509FindType, Object, Boolean) casse pour l’ensemble du nom unique. La recherche par nom d’objet est une recherche moins précise.

FindByIssuerName 3

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom de l’émetteur du certificat. Il s’agit d’une recherche moins spécifique que celle fournie par la valeur d’énumération FindByIssuerDistinguishedName . À l’aide de la valeur, la FindByIssuerName méthode effectue une comparaison de chaînes ne respectant pas la Find(X509FindType, Object, Boolean) casse à l’aide de la valeur fournie. Par exemple, si vous passez « MyCA » à la Find(X509FindType, Object, Boolean) méthode, il recherche tous les certificats portant le nom de l’émetteur contenant cette chaîne, quelles que soient les autres valeurs de l’émetteur.

FindByIssuerDistinguishedName 4

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom unique de l’émetteur du certificat. Il s’agit d’une recherche plus spécifique que celle fournie par la valeur d’énumération FindByIssuerName . À l’aide de la valeur, la FindByIssuerDistinguishedName méthode effectue une comparaison de chaînes ne respectant pas la Find(X509FindType, Object, Boolean) casse pour l’ensemble du nom unique. La recherche par nom d’émetteur est une recherche moins précise.

FindBySerialNumber 5

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne qui représente le numéro de série du certificat tel qu’affiché par la boîte de dialogue de certificat, mais sans les espaces ou retournés par la GetSerialNumberString() méthode.

FindByTimeValid 6

Le findValue paramètre de la méthode doit être une Find(X509FindType, Object, Boolean) valeur dans l’heure DateTime locale. Vous pouvez utiliser Now pour rechercher tous les certificats actuellement valides.

FindByTimeNotYetValid 7

Le findValue paramètre de la méthode doit être une Find(X509FindType, Object, Boolean) valeur dans l’heure DateTime locale. La valeur n’a pas besoin d’être à l’avenir. Par exemple, vous pouvez utiliser FindByTimeNotYetValid pour rechercher des certificats qui sont devenus valides dans l’année en cours en prenant l’intersection des résultats d’une Find(X509FindType, Object, Boolean) opération pour FindByTimeNotYetValid le dernier jour de l’année dernière avec les résultats d’une Find(X509FindType, Object, Boolean) opération pour FindByTimeValid .Now

FindByTimeExpired 8

Le findValue paramètre de la méthode doit être une Find(X509FindType, Object, Boolean) valeur dans l’heure DateTime locale. Par exemple, vous pouvez trouver tous les certificats qui seront valides jusqu’à la fin de l’année en éliminant les résultats d’une Find(X509FindType, Object, Boolean) opération pour FindByTimeExpired le dernier jour de l’année à partir des résultats d’une Find(X509FindType, Object, Boolean) opération pour Now.

FindByTemplateName 9

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom du modèle du certificat, par exemple « ClientAuth ». Un nom de modèle est une extension X509 version 3 qui spécifie les utilisations du certificat.

FindByApplicationPolicy 10

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom convivial de la stratégie d’application ou l’identificateur d’objet (OID, ou Oid) du certificat. Par exemple, « Chiffrement du système de fichiers » ou « 1.3.6.1.4.1.311.10.3.4 » peut être utilisé. Pour une application qui sera localisée, la valeur OID doit être utilisée, car le nom convivial est localisé.

FindByCertificatePolicy 11

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant le nom convivial ou l’identificateur d’objet (OID, ou Oid) de la stratégie de certificat. La meilleure pratique consiste à utiliser l’OID, par exemple « 1.3.6.1.4.1.311.10.3.4 ». Pour une application qui sera localisée, l’OID doit être utilisé, car le nom convivial est localisé.

FindByExtension 12

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne décrivant l’extension à rechercher. L’identificateur d’objet (OID) est le plus souvent utilisé pour diriger la Find(X509FindType, Object, Boolean) méthode pour rechercher tous les certificats qui ont une extension correspondant à cette valeur OID.

FindByKeyUsage 13

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant l’utilisation de la clé ou un entier représentant un masque de bits contenant toutes les utilisations de clé demandées. Pour la valeur de chaîne, une seule utilisation de clé à la fois peut être spécifiée, mais la Find(X509FindType, Object, Boolean) méthode peut être utilisée dans une séquence en cascade pour obtenir l’intersection des utilisations demandées. Par exemple, le findValue paramètre peut être défini sur « KeyEncipherment » ou un entier (0x30 indique « KeyEncipherment » et « DataEncipherment »). Les valeurs de l’énumération X509KeyUsageFlags peuvent également être utilisées.

FindBySubjectKeyIdentifier 14

Le findValue paramètre de la Find(X509FindType, Object, Boolean) méthode doit être une chaîne représentant l’identificateur de clé d’objet en hexadécimal, tel que « F3E815D45E83B8477B9284113C64EF208E897112 », comme affiché dans l’interface utilisateur.

Exemples

L’exemple suivant ouvre le magasin de certificats personnel de l’utilisateur actuel, recherche uniquement les certificats valides, permet à l’utilisateur de sélectionner un certificat, puis écrit les informations de certificat dans la console. La sortie dépend du certificat que vous sélectionnez.

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

class CertSelect
{
    static void Main()
    {
        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)
        {
            try
            {
                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("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();
            }
            catch (CryptographicException)
            {
                Console.WriteLine("Information could not be written out for this certificate.");
            }
        }
        store.Close();
    }
}
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates

Class CertSelect

    Shared Sub Main()

        Dim store As New X509Store("MY", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

        Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
        Dim scollection As X509Certificate2Collection = 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)
         
        For Each x509 As X509Certificate2 In scollection
            Try
                Dim rawdata As Byte() = 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("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()         
             Catch cExcept As CryptographicException
                 Console.WriteLine("Information could not be written out for this certificate.")
             End Try
        Next x509

        store.Close()
    End Sub
End Class

Remarques

X509FindType identifie le type de valeur fourni dans le findValue paramètre de la Find méthode. Vous pouvez effectuer X509FindType une recherche dans une X509Certificate2 collection par nom d’objet, empreinte numérique, numéro de série, plage de dates valide ou autre valeur.

Vous pouvez utiliser une combinaison de FindByTime types valeur pour rechercher des certificats valides dans un intervalle de temps donné. L’union des certificats retournés à l’aide de FindByTimeValid, FindByTimeNotYetValid et FindByTimeExpired pour une heure donnée représente tous les certificats de la collection interrogée.

S’applique à