Partager via


X509FindType Énumération

Définition

Spécifie le type valeur recherché par la méthode Find(X509FindType, Object, Boolean).

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

Champs

FindByApplicationPolicy 10

Le paramètre findValue de la méthode Find(X509FindType, Object, Boolean) doit être une chaîne représentant soit le nom convivial de la stratégie de l'application, soit l'identificateur d'objet (OID ou Oid) du certificat. Par exemple, "Système de fichiers EFS" ou "1.3.6.1.4.1.311.10.3.4" peuvent être utilisés. Pour une application destinée à être localisée, la valeur OID doit être utilisée car le nom convivial est localisé.

FindByCertificatePolicy 11

Le paramètre findValue de la méthode Find(X509FindType, Object, Boolean) doit être une chaîne représentant soit le nom convivial, soit l'identificateur d'objet (OID ou Oid) de la stratégie de certificat. La méthode conseillée consiste à utiliser l'OID, tel que "1.3.6.1.4.1.311.10.3.4". Pour une application destinée à être localisée, l'OID doit être utilisé car le nom convivial est localisé.

FindByExtension 12

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

FindByIssuerDistinguishedName 4

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

FindByIssuerName 3

Le paramètre findValue de la méthode Find(X509FindType, Object, Boolean) 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 FindByIssuerName, la méthode Find(X509FindType, Object, Boolean) exécute une comparaison de chaînes qui ne respectent pas la casse à l'aide de la valeur fournie. Par exemple, si vous passez "MonAC" à la méthode Find(X509FindType, Object, Boolean), celle-ci recherchera tous les certificats dont le nom d'émetteur contient cette chaîne, indépendamment des autres valeurs de l'émetteur.

FindByKeyUsage 13

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

FindBySerialNumber 5

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

FindBySubjectDistinguishedName 2

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

FindBySubjectKeyIdentifier 14

Le paramètre findValue de la méthode Find(X509FindType, Object, Boolean) doit être une chaîne représentant l'identificateur de la clé de l'objet au format hexadécimal, comme "F3E815D45E83B8477B9284113C64EF208E897112", telle qu'elle apparaît dans l'interface utilisateur.

FindBySubjectName 1

Le paramètre findValue de la méthode Find(X509FindType, Object, Boolean) 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 FindBySubjectName, la méthode Find(X509FindType, Object, Boolean) exécute une comparaison de chaînes qui ne respectent pas la casse à l'aide de la valeur fournie. Par exemple, si vous passez "MonCert" à la méthode Find(X509FindType, Object, Boolean), celle-ci recherchera tous les certificats dont le nom d'objet contient cette chaîne, indépendamment des autres valeurs de l'objet. La recherche par nom unique est une recherche plus précise.

FindByTemplateName 9

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

FindByThumbprint 0

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

FindByTimeExpired 8

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

FindByTimeNotYetValid 7

Le paramètre findValue de Find(X509FindType, Object, Boolean) doit être une valeur DateTime en heure locale. La valeur ne doit pas être nécessairement une date future. 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 opération Find(X509FindType, Object, Boolean) pour FindByTimeNotYetValid effectuée le dernier jour de l'année dernière et des résultats d'une opération Find(X509FindType, Object, Boolean) pour FindByTimeValid de Now.

FindByTimeValid 6

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

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.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Permissions;
using namespace System::IO;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store ^ store = gcnew X509Store( "MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection ^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      X509Certificate2Collection ^ fcollection = dynamic_cast<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 );
      System::Collections::IEnumerator^ myEnum = scollection->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
         array<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 );
         x509->Reset();
      }
      store->Close();
   }
   catch ( CryptographicException^ ) 
   {
      Console::WriteLine( "Information could not be written out for this certificate." );
   }

}
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 utiliser X509FindType pour rechercher une collection par nom d’objet X509Certificate2 , empreinte numérique, numéro de série, plage de dates valide ou autre valeur.

Vous pouvez utiliser une combinaison de types valeur FindByTime 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 un temps donné représente tous les certificats de la collection interrogée.

S’applique à