X509FindType Enum

Definitie

Hiermee geeft u het type waarde op dat door de Find(X509FindType, Object, Boolean) methode wordt gezocht.

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

Velden

Name Waarde Description
FindByThumbprint 0

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de vingerafdruk van het certificaat vertegenwoordigt.

FindBySubjectName 1

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de onderwerpnaam van het certificaat vertegenwoordigt. Dit is een minder specifieke zoekopdracht dan die is opgegeven door de FindBySubjectDistinguishedName opsommingswaarde. Met behulp van de FindBySubjectName waarde voert de Find(X509FindType, Object, Boolean) methode een niet-hoofdlettergevoelige tekenreeksvergelijking uit met behulp van de opgegeven waarde. Als u bijvoorbeeld 'MyCert' doorgeeft aan de Find(X509FindType, Object, Boolean) methode, worden alle certificaten gevonden met de onderwerpnaam die die tekenreeks bevat, ongeacht andere onderwerpwaarden. Zoeken op DN-naam is een nauwkeurigere zoekopdracht.

FindBySubjectDistinguishedName 2

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de DN-naam van het onderwerp van het certificaat vertegenwoordigt. Dit is een specifiekere zoekopdracht dan die is opgegeven door de FindBySubjectName opsommingswaarde. Met behulp van de FindBySubjectDistinguishedName waarde voert de Find(X509FindType, Object, Boolean) methode een niet-hoofdlettergevoelige tekenreeksvergelijking uit voor de volledige DN-naam. Zoeken op onderwerpnaam is een minder nauwkeurige zoekopdracht.

FindByIssuerName 3

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de naam van de uitgever van het certificaat vertegenwoordigt. Dit is een minder specifieke zoekopdracht dan die is opgegeven door de FindByIssuerDistinguishedName opsommingswaarde. Met behulp van de FindByIssuerName waarde voert de Find(X509FindType, Object, Boolean) methode een niet-hoofdlettergevoelige tekenreeksvergelijking uit met behulp van de opgegeven waarde. Als u bijvoorbeeld 'MyCA' doorgeeft aan de Find(X509FindType, Object, Boolean) methode, vindt u alle certificaten met de naam van de uitgever die die tekenreeks bevat, ongeacht andere waarden voor verleners.

FindByIssuerDistinguishedName 4

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de DN-naam van de uitgever van het certificaat vertegenwoordigt. Dit is een specifiekere zoekopdracht dan die is opgegeven door de FindByIssuerName opsommingswaarde. Met behulp van de FindByIssuerDistinguishedName waarde voert de Find(X509FindType, Object, Boolean) methode een niet-hoofdlettergevoelige tekenreeksvergelijking uit voor de volledige DN-naam. Zoeken op naam van verlener is een minder nauwkeurige zoekopdracht.

FindBySerialNumber 5

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die het serienummer van het certificaat vertegenwoordigt, zoals weergegeven in het dialoogvenster certificaat, maar zonder de spaties of zoals geretourneerd door de GetSerialNumberString() methode.

FindByTimeValid 6

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een DateTime waarde in de lokale tijd zijn. U kunt alle Now momenteel geldige certificaten vinden.

FindByTimeNotYetValid 7

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een DateTime waarde in de lokale tijd zijn. De waarde hoeft niet in de toekomst te zijn. U kunt FindByTimeNotYetValid bijvoorbeeld certificaten vinden die in het huidige jaar geldig zijn geworden door het snijpunt van de resultaten van een Find(X509FindType, Object, Boolean) bewerking voor FindByTimeNotYetValid de laatste dag van vorig jaar te nemen met de resultaten van een Find(X509FindType, Object, Boolean) bewerking voor FindByTimeValidNow.

FindByTimeExpired 8

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een DateTime waarde in de lokale tijd zijn. U kunt bijvoorbeeld alle certificaten vinden die geldig zijn tot het einde van het jaar door de resultaten van een Find(X509FindType, Object, Boolean) bewerking voor FindByTimeExpired de laatste dag van het jaar te elimineren op basis van de resultaten van een Find(X509FindType, Object, Boolean) bewerking voor Now.

FindByTemplateName 9

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de sjabloonnaam van het certificaat vertegenwoordigt, zoals 'ClientAuth'. Een sjabloonnaam is een X509 versie 3-extensie die het gebruik van het certificaat aangeeft.

FindByApplicationPolicy 10

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de beschrijvende naam van het toepassingsbeleid of de object-id (OID of Oid) van het certificaat vertegenwoordigt. U kunt bijvoorbeeld 'Bestandssysteem versleutelen' of '1.3.6.1.4.1.311.10.3.4' gebruiken. Voor een toepassing die wordt gelokaliseerd, moet de OID-waarde worden gebruikt, omdat de beschrijvende naam is gelokaliseerd.

FindByCertificatePolicy 11

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de beschrijvende naam of de object-id (OID of Oid) van het certificaatbeleid vertegenwoordigt. De aanbevolen procedure is om de OID te gebruiken, zoals '1.3.6.1.4.1.311.10.3.4'. Voor een toepassing die wordt gelokaliseerd, moet de OID worden gebruikt, omdat de beschrijvende naam is gelokaliseerd.

FindByExtension 12

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de extensie beschrijft die moet worden gevonden. De object-id (OID) wordt meestal gebruikt om de Find(X509FindType, Object, Boolean) methode om te leiden naar alle certificaten met een extensie die overeenkomt met die OID-waarde.

FindByKeyUsage 13

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die het sleutelgebruik aangeeft of een geheel getal dat een bitmasker vertegenwoordigt dat alle aangevraagde sleutelgebruiken bevat. Voor de tekenreekswaarde kan slechts één sleutelgebruik tegelijk worden opgegeven, maar de Find(X509FindType, Object, Boolean) methode kan worden gebruikt in een trapsgewijze volgorde om het snijpunt van de aangevraagde gebruikswaarden op te halen. De findValue parameter kan bijvoorbeeld worden ingesteld op 'KeyEncipherment' of een geheel getal (0x30 geeft 'KeyEncipherment' en 'DataEncipherment' aan). Waarden van de X509KeyUsageFlags opsomming kunnen ook worden gebruikt.

FindBySubjectKeyIdentifier 14

De findValue parameter voor de Find(X509FindType, Object, Boolean) methode moet een tekenreeks zijn die de onderwerpsleutel-id in hexadecimaal vertegenwoordigt, zoals 'F3E815D45E83B8477B9284113C64EF208E897112', zoals wordt weergegeven in de gebruikersinterface.

Voorbeelden

In het volgende voorbeeld wordt het persoonlijke certificaatarchief van de huidige gebruiker geopend, worden alleen geldige certificaten gevonden, kan de gebruiker een certificaat selecteren en vervolgens certificaatgegevens naar de console schrijven. De uitvoer is afhankelijk van het certificaat dat u selecteert.

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

Opmerkingen

X509FindType identificeert het type waarde dat is opgegeven in de findValue parameter voor de Find methode. U kunt X509FindType een X509Certificate2 verzameling doorzoeken op onderwerpnaam, vingerafdruk, serienummer, geldig datumbereik of andere waarde.

U kunt een combinatie van FindByTime waardetypen gebruiken om certificaten te vinden die geldig zijn in een bepaald tijdsbereik. De samenvoeging van certificaten die worden geretourneerd met behulp van FindByTimeValid, FindByTimeNotYetValid en FindByTimeExpired voor een bepaalde tijd vertegenwoordigt alle certificaten in de opgevraagde verzameling.

Van toepassing op