X509FindType Enumeration

Definition

Gibt den Typ des Werts an, nach dem die Find(X509FindType, Object, Boolean)-Methode sucht.

public enum class X509FindType
public enum X509FindType
type X509FindType = 
Public Enum X509FindType
Vererbung
X509FindType

Felder

FindByApplicationPolicy 10

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die entweder den angezeigten Namen der Anwendungsrichtlinie oder den Objektbezeichner (OID oder Oid) des Zertifikats darstellt. Beispielsweise kann "Encrypting File System" oder "1.3.6.1.4.1.311.10.3.4" verwendet werden. Für eine Anwendung, die lokalisiert wird, muss der OID-Wert verwendet werden, da der Anzeigename lokalisiert wird.

FindByCertificatePolicy 11

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den angezeigten Namen oder den Objektbezeichner (OID oder Oid) der Zertifikatsrichtlinie darstellt. Die optimale Methode besteht darin, den OID-Wert zu verwenden, z. B. "1.3.6.1.4.1.311.10.3.4". Für eine Anwendung, die lokalisiert wird, muss die OID verwendet werden, da der Anzeigename lokalisiert wird.

FindByExtension 12

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, mit der die gesuchte Erweiterung beschrieben wird. Der Objektbezeichner (OID) wird meist dazu verwendet, die Find(X509FindType, Object, Boolean)-Methode anzuweisen, nach allen Zertifikaten mit einer Erweiterung zu suchen, die dem betreffenden OID-Wert entspricht.

FindByIssuerDistinguishedName 4

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Distinguished Name des Ausstellers des Zertifikats darstellt. Dies ist eine bestimmtere Suche als die durch den FindByIssuerName-Enumerationswert bereitgestellte. Mit dem FindByIssuerDistinguishedName-Wert führt die Find(X509FindType, Object, Boolean)-Methode einen Zeichenfolgenvergleich ohne Berücksichtigung von Groß- und Kleinschreibung für den gesamten Distinguished Name aus. Das Suchen nach Ausstellernamen ist ein weniger genaues Suchverfahren.

FindByIssuerName 3

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Namen des Ausstellers des Zertifikats darstellt. Dies ist eine weniger bestimmte Suche als die durch den FindByIssuerDistinguishedName-Enumerationswert bereitgestellte. Mit dem FindByIssuerName-Wert führt die Find(X509FindType, Object, Boolean)-Methode einen Zeichenfolgenvergleich ohne Berücksichtigung der Groß- und Kleinschreibung unter Verwendung des angegebenen Werts aus. Wenn Sie beispielsweise "MyCA" an die Find(X509FindType, Object, Boolean)-Methode übergeben, wird nach allen Zertifikaten mit einem Ausstellernamen gesucht, der diese Zeichenfolge enthält, ungeachtet anderer Werte für den Aussteller.

FindByKeyUsage 13

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die die Schlüsselverwendung darstellt, oder eine Ganzzahl, die eine Bitmaske mit allen angeforderten Schlüsselverwendungen enthält. Für den Zeichenfolgenwert kann nur jeweils eine Schlüsselverwendung angegeben werden, die Find(X509FindType, Object, Boolean)-Methode kann jedoch in einer überlappenden Sequenz verwendet werden, um die Schnittmenge der angeforderten Verwendungen abzurufen. Beispielsweise kann der findValue-Parameter auf "KeyEncipherment" oder auf eine Ganzzahl (0x30 gibt "KeyEncipherment" und "DataEncipherment" an) festgelegt werden. Werte der X509KeyUsageFlags-Enumeration können ebenfalls verwendet werden.

FindBySerialNumber 5

Der findValue-Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die die Seriennummer des Zertifikats darstellt, wie vom Zertifikatsdialogfeld angezeigt, jedoch ohne die Leerzeichen, oder, wie von der GetSerialNumberString()-Methode zurückgegeben.

FindBySubjectDistinguishedName 2

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Distinguished Name des Antragstellers des Zertifikats darstellt. Dies ist eine bestimmtere Suche als die durch den FindBySubjectName-Enumerationswert bereitgestellte. Mit dem FindBySubjectDistinguishedName-Wert führt die Find(X509FindType, Object, Boolean)-Methode einen Zeichenfolgenvergleich ohne Berücksichtigung von Groß- und Kleinschreibung für den gesamten Distinguished Name aus. Das Suchen nach Antragstellernamen ist ein weniger genaues Suchverfahren.

FindBySubjectKeyIdentifier 14

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Zeichenfolgenbezeichner des Antragstellers in Hexadezimalschreibweise darstellt, z. B. "F3E815D45E83B8477B9284113C64EF208E897112", entsprechend der Anzeige auf der Benutzeroberfläche.

FindBySubjectName 1

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Namen des Antragstellers des Zertifikats darstellt. Dies ist eine weniger bestimmte Suche als die durch den FindBySubjectDistinguishedName-Enumerationswert bereitgestellte. Mit dem FindBySubjectName-Wert führt die Find(X509FindType, Object, Boolean)-Methode einen Zeichenfolgenvergleich ohne Berücksichtigung der Groß- und Kleinschreibung unter Verwendung des angegebenen Werts aus. Wenn Sie beispielsweise "MyCert" an die Find(X509FindType, Object, Boolean)-Methode übergeben, wird nach allen Zertifikaten mit einem Antragstellernamen gesucht, der diese Zeichenfolge enthält, ungeachtet anderer Werte für den Antragsteller. Die Suche anhand des Distinguished Name ist ein genaueres Verfahren.

FindByTemplateName 9

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Vorlagennamen des Zertifikats darstellt, z. B. "ClientAuth". Ein Vorlagenname ist eine X509-Erweiterung, Version 3, in der die Zertifikatsverwendungen angegeben sind.

FindByThumbprint 0

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss eine Zeichenfolge sein, die den Fingerabdruck des Zertifikats darstellt.

FindByTimeExpired 8

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss ein DateTime-Wert für die Ortszeit sein. Alle Zertifikate, die bis zum Ende des Jahres gültig sind, können durch das Ausschließen der Ergebnisse eines Find(X509FindType, Object, Boolean)-Vorgangs für FindByTimeExpired des letzten Tags des Jahres von den Ergebnissen eines Find(X509FindType, Object, Boolean)-Vorgangs für Now gesucht werden.

FindByTimeNotYetValid 7

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss ein DateTime-Wert für die Ortszeit sein. Der Wert muss nicht in der Zukunft liegen. Sie können z. B. mit FindByTimeNotYetValid Zertifikate suchen, die im aktuellen Jahr gültig wurden, indem Sie die Schnittmenge der Ergebnisse eines Find(X509FindType, Object, Boolean)-Vorgangs für FindByTimeNotYetValid für den letzten Tag des Jahres mit den Ergebnissen eines Find(X509FindType, Object, Boolean)-Vorgangs für FindByTimeValid von Now nehmen.

FindByTimeValid 6

Der findValue-Parameter für die Find(X509FindType, Object, Boolean)-Methode muss ein DateTime-Wert für die Ortszeit sein. Sie können alle gerade gültigen Zertifikate mithilfe von Now suchen.

Beispiele

Im folgenden Beispiel wird der persönliche Zertifikatspeicher des aktuellen Benutzers geöffnet, nur gültige Zertifikate gefunden, der Benutzer kann ein Zertifikat auswählen und dann Zertifikatinformationen in die Konsole schreiben. Die Ausgabe hängt vom ausgewählten Zertifikat ab.

#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

Hinweise

X509FindType gibt den Werttyp an, der findValue im -Parameter für die Find -Methode angegeben wird. Sie können verwenden X509FindType , um eine X509Certificate2 Sammlung nach Antragstellername, Fingerabdruck, Seriennummer, gültigem Datumsbereich oder einem anderen Wert zu durchsuchen.

Sie können eine Kombination von FindByTime Werttypen verwenden, um Zertifikate zu finden, die in einem bestimmten Zeitbereich gültig sind. Die Union von Zertifikaten, die mit FindByTimeValid, FindByTimeNotYetValid und FindByTimeExpired für einen bestimmten Zeitraum zurückgegeben werden, stellt alle Zertifikate in der abgefragten Auflistung dar.

Gilt für: