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

Name Wert Beschreibung
FindByThumbprint 0

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

FindBySubjectName 1

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die den Antragstellernamen des Zertifikats darstellt. Dies ist eine weniger spezifische Suche als die, die FindBySubjectDistinguishedName vom Enumerationswert bereitgestellt wird. Bei Verwendung des FindBySubjectName Werts führt die Find(X509FindType, Object, Boolean) Methode einen Zeichenfolgenvergleich zwischen Groß-und Kleinschreibung mithilfe des angegebenen Werts aus. Wenn Sie beispielsweise "MyCert" an die Find(X509FindType, Object, Boolean) Methode übergeben, werden alle Zertifikate mit dem Antragstellernamen gefunden, der diese Zeichenfolge enthält, unabhängig von anderen Betreffwerten. Die Suche nach distinguished name ist eine genauere Suche.

FindBySubjectDistinguishedName 2

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die den Betreff distinguished Name des Zertifikats darstellt. Dies ist eine spezifischere Suche als die, die FindBySubjectName vom Enumerationswert bereitgestellt wird. Bei Verwendung des FindBySubjectDistinguishedName Werts führt die Find(X509FindType, Object, Boolean) Methode einen Zeichenfolgenvergleich zwischen Groß- und Kleinschreibung für den gesamten distinguished-Namen durch. Bei der Suche nach dem Betreffnamen handelt es sich um eine weniger präzise Suche.

FindByIssuerName 3

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die den Ausstellernamen des Zertifikats darstellt. Dies ist eine weniger spezifische Suche als die, die FindByIssuerDistinguishedName vom Enumerationswert bereitgestellt wird. Bei Verwendung des FindByIssuerName Werts führt die Find(X509FindType, Object, Boolean) Methode einen Zeichenfolgenvergleich zwischen Groß-und Kleinschreibung mithilfe des angegebenen Werts aus. Wenn Sie beispielsweise "MyCA" an die Find(X509FindType, Object, Boolean) Methode übergeben, werden alle Zertifikate mit dem Ausstellernamen gefunden, der diese Zeichenfolge enthält, unabhängig von anderen Ausstellerwerten.

FindByIssuerDistinguishedName 4

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die den Aussteller distinguished Name des Zertifikats darstellt. Dies ist eine spezifischere Suche als die, die FindByIssuerName vom Enumerationswert bereitgestellt wird. Bei Verwendung des FindByIssuerDistinguishedName Werts führt die Find(X509FindType, Object, Boolean) Methode einen Zeichenfolgenvergleich zwischen Groß- und Kleinschreibung für den gesamten distinguished-Namen durch. Bei der Suche nach Ausstellernamen handelt es sich um eine weniger präzise Suche.

FindBySerialNumber 5

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

FindByTimeValid 6

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss ein DateTime Wert in der lokalen Zeit sein. Sie können verwenden Now , um alle aktuell gültigen Zertifikate zu finden.

FindByTimeNotYetValid 7

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

FindByTimeExpired 8

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss ein DateTime Wert in der lokalen Zeit sein. Sie können beispielsweise alle Zertifikate finden, die bis zum Ende des Jahres gültig sein werden, indem Sie die Ergebnisse eines Find(X509FindType, Object, Boolean) Vorgangs für FindByTimeExpired den letzten Tag des Jahres aus den Ergebnissen eines Vorgangs für einen Find(X509FindType, Object, Boolean) Vorgang für Now.

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 Version 3-Erweiterung, die die Verwendung des Zertifikats angibt.

FindByApplicationPolicy 10

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die entweder den Anzeigenamen der Anwendungsrichtlinie oder den Objektbezeichner (OID oder Oid) des Zertifikats darstellt. Beispielsweise kann "Verschlüsselndes Dateisystem" 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 ist.

FindByCertificatePolicy 11

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die entweder den Anzeigenamen oder den Objektbezeichner (OID oder Oid) der Zertifikatrichtlinie darstellt. Die bewährte Methode ist die Verwendung des OID, z. B. "1.3.6.1.4.1.311.10.3.4". Für eine Anwendung, die lokalisiert wird, muss das OID verwendet werden, da der Anzeigename lokalisiert ist.

FindByExtension 12

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die die zu findende Erweiterung beschreibt. Der Objektbezeichner (Object Identifier, OID) wird am häufigsten verwendet, um die Find(X509FindType, Object, Boolean) Methode zum Suchen nach allen Zertifikaten zu leiten, die einen Erweiterungsabgleich mit diesem OID-Wert aufweisen.

FindByKeyUsage 13

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

FindBySubjectKeyIdentifier 14

Der findValue Parameter für die Find(X509FindType, Object, Boolean) Methode muss eine Zeichenfolge sein, die den Bezeichner des Betreffschlüssels im Hexadezimalwert darstellt, z. B. "F3E815D45E83B8477B9284113C64EF208E897112", wie in der Benutzeroberfläche angezeigt.

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;
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 Typ des Werts an, der findValue im Parameter für die Find Methode bereitgestellt wird. Sie können X509FindType eine Sammlung nach Betreffname, Fingerabdruck, Seriennummer, gültiger Datumsbereich oder einem anderen Wert durchsuchen X509Certificate2 .

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

Gilt für: