X509FindType Enum

Definition

Anger vilken typ av värde Find(X509FindType, Object, Boolean) metoden söker efter.

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

Fält

Name Värde Description
FindByThumbprint 0

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar tumavtrycket för certifikatet.

FindBySubjectName 1

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar certifikatets ämnesnamn. Det här är en mindre specifik sökning än den som tillhandahålls av FindBySubjectDistinguishedName uppräkningsvärdet. Med hjälp av FindBySubjectName värdet Find(X509FindType, Object, Boolean) utför metoden en skiftlägesokänslig strängjämförelse med det angivna värdet. Om du till exempel skickar "MyCert" till metoden hittar den Find(X509FindType, Object, Boolean) alla certifikat med ämnesnamnet som innehåller strängen, oavsett andra ämnesvärden. Sökning efter unikt namn är en mer exakt sökning.

FindBySubjectDistinguishedName 2

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar certifikatets unika ämnesnamn. Det här är en mer specifik sökning än den som tillhandahålls av FindBySubjectName uppräkningsvärdet. Med hjälp av FindBySubjectDistinguishedName värdet Find(X509FindType, Object, Boolean) utför metoden en skiftlägesokänslig strängjämförelse för hela det unika namnet. Sökning efter ämnesnamn är en mindre exakt sökning.

FindByIssuerName 3

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara en sträng som representerar certifikatets utfärdarnamn. Det här är en mindre specifik sökning än den som tillhandahålls av FindByIssuerDistinguishedName uppräkningsvärdet. Med hjälp av FindByIssuerName värdet Find(X509FindType, Object, Boolean) utför metoden en skiftlägesokänslig strängjämförelse med det angivna värdet. Om du till exempel skickar "MyCA" till metoden hittar den Find(X509FindType, Object, Boolean) alla certifikat med utfärdarnamnet som innehåller strängen, oavsett andra utfärdarvärden.

FindByIssuerDistinguishedName 4

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar certifikatets unika namn för utfärdaren. Det här är en mer specifik sökning än den som tillhandahålls av FindByIssuerName uppräkningsvärdet. Med hjälp av FindByIssuerDistinguishedName värdet Find(X509FindType, Object, Boolean) utför metoden en skiftlägesokänslig strängjämförelse för hela det unika namnet. Sökning efter utfärdarnamn är en mindre exakt sökning.

FindBySerialNumber 5

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar certifikatets serienummer som visas i dialogrutan certifikat, men utan blanksteg eller som returneras av GetSerialNumberString() metoden.

FindByTimeValid 6

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara ett DateTime värde i lokal tid. Du kan använda Now för att hitta alla giltiga certifikat.

FindByTimeNotYetValid 7

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara ett DateTime värde i lokal tid. Värdet behöver inte vara i framtiden. Du kan till exempel använda FindByTimeNotYetValid för att hitta certifikat som blev giltiga under innevarande år genom att ta skärningspunkten för resultatet av en Find(X509FindType, Object, Boolean) åtgärd för FindByTimeNotYetValid den sista dagen i förra året med resultatet av en Find(X509FindType, Object, Boolean) åtgärd för FindByTimeValid av Now.

FindByTimeExpired 8

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara ett DateTime värde i lokal tid. Du kan till exempel hitta alla certifikat som är giltiga fram till slutet av året genom att eliminera resultatet av en Find(X509FindType, Object, Boolean) åtgärd för FindByTimeExpired den sista dagen på året från resultatet av en Find(X509FindType, Object, Boolean) åtgärd för Now.

FindByTemplateName 9

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara en sträng som representerar certifikatets mallnamn, till exempel "ClientAuth". Ett mallnamn är ett X509 version 3-tillägg som anger certifikatets användning.

FindByApplicationPolicy 10

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar antingen det egna namnet på programprincipen eller objektidentifieraren (OID eller Oid) för certifikatet. Till exempel kan "Kryptera filsystem" eller "1.3.6.1.4.1.311.10.3.4" användas. För ett program som ska lokaliseras måste OID-värdet användas eftersom det egna namnet är lokaliserat.

FindByCertificatePolicy 11

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar antingen det egna namnet eller objektidentifieraren (OID eller Oid) för certifikatprincipen. Bästa praxis är att använda OID, till exempel "1.3.6.1.4.1.311.10.3.4". För ett program som ska lokaliseras måste OID användas, eftersom det egna namnet är lokaliserat.

FindByExtension 12

Parametern findValueFind(X509FindType, Object, Boolean) för metoden måste vara en sträng som beskriver tillägget för att hitta. Objektidentifieraren (OID) används oftast för att dirigera Find(X509FindType, Object, Boolean) metoden för att söka efter alla certifikat som har ett tillägg som matchar OID-värdet.

FindByKeyUsage 13

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara antingen en sträng som representerar nyckelanvändningen eller ett heltal som representerar en bitmask som innehåller alla begärda nyckelanvändningar. För strängvärdet kan endast en nyckelanvändning i taget anges, men Find(X509FindType, Object, Boolean) metoden kan användas i en sammanhängande sekvens för att få skärningspunkten för de begärda användningarna. Parametern findValue kan till exempel anges till "KeyEncipherment" eller ett heltal (0x30 anger "KeyEncipherment" och "DataEncipherment"). Uppräkningsvärden X509KeyUsageFlags kan också användas.

FindBySubjectKeyIdentifier 14

Parametern findValue för Find(X509FindType, Object, Boolean) metoden måste vara en sträng som representerar ämnesnyckelidentifieraren i hexadecimalt, till exempel "F3E815D45E83B8477B9284113C64EF208E897112", som visas i användargränssnittet.

Exempel

I följande exempel öppnas den aktuella användarens personliga certifikatarkiv, endast hittar giltiga certifikat, tillåter användaren att välja ett certifikat och skriver sedan certifikatinformation till konsolen. Utdata beror på vilket certifikat du väljer.

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

Kommentarer

X509FindType identifierar den typ av värde som anges i parametern findValue för Find metoden. Du kan använda X509FindType för att söka i en X509Certificate2 samling efter ämnesnamn, tumavtryck, serienummer, giltigt datumintervall eller annat värde.

Du kan använda en kombination av FindByTime värdetyper för att hitta certifikat som är giltiga inom ett angivet tidsintervall. Den union av certifikat som returneras med FindByTimeValid, FindByTimeNotYetValid och FindByTimeExpired under en viss tid representerar alla certifikat i den efterfrågade samlingen.

Gäller för