X509FindType 열거형

정의

Find(X509FindType, Object, Boolean) 메서드가 검색하는 값의 형식을 지정합니다.

public enum class X509FindType
public enum X509FindType
type X509FindType = 
Public Enum X509FindType
상속
X509FindType

필드

Name Description
FindByThumbprint 0

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 지문을 나타내는 문자열이어야 합니다.

FindBySubjectName 1

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 주체 이름을 나타내는 문자열이어야 합니다. 열거형 값에서 제공하는 FindBySubjectDistinguishedName 검색보다 덜 구체적인 검색입니다. 메서드는 FindBySubjectName 값을 Find(X509FindType, Object, Boolean) 사용하여 제공된 값을 사용하여 대/소문자를 구분하지 않는 문자열 비교를 수행합니다. 예를 들어 메서드에 "MyCert"를 Find(X509FindType, Object, Boolean) 전달하면 다른 주체 값에 관계없이 해당 문자열이 포함된 주체 이름을 가진 모든 인증서를 찾습니다. 고유 이름으로 검색하는 것이 더 정확한 검색입니다.

FindBySubjectDistinguishedName 2

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 주체 고유 이름을 나타내는 문자열이어야 합니다. 열거형 값에서 제공하는 FindBySubjectName 검색보다 더 구체적인 검색입니다. FindBySubjectDistinguishedName 이 값을 사용하여 메서드는 Find(X509FindType, Object, Boolean) 전체 고유 이름에 대해 대/소문자를 구분하지 않는 문자열 비교를 수행합니다. 제목 이름으로 검색하는 것은 덜 정확한 검색입니다.

FindByIssuerName 3

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 발급자 이름을 나타내는 문자열이어야 합니다. 열거형 값에서 제공하는 FindByIssuerDistinguishedName 검색보다 덜 구체적인 검색입니다. 메서드는 FindByIssuerName 값을 Find(X509FindType, Object, Boolean) 사용하여 제공된 값을 사용하여 대/소문자를 구분하지 않는 문자열 비교를 수행합니다. 예를 들어 메서드에 "MyCA"를 Find(X509FindType, Object, Boolean) 전달하면 다른 발급자 값에 관계없이 해당 문자열이 포함된 발급자 이름을 가진 모든 인증서를 찾습니다.

FindByIssuerDistinguishedName 4

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 발급자 고유 이름을 나타내는 문자열이어야 합니다. 열거형 값에서 제공하는 FindByIssuerName 검색보다 더 구체적인 검색입니다. FindByIssuerDistinguishedName 이 값을 사용하여 메서드는 Find(X509FindType, Object, Boolean) 전체 고유 이름에 대해 대/소문자를 구분하지 않는 문자열 비교를 수행합니다. 발급자 이름으로 검색하는 것은 덜 정확한 검색입니다.

FindBySerialNumber 5

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서 대화 상자에 표시되는 인증서의 일련 번호를 나타내는 문자열이어야 하지만 공백이 없거나 메서드에서 GetSerialNumberString() 반환하는 문자열이어야 합니다.

FindByTimeValid 6

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 현지 시간의 값이어야 DateTime 합니다. 현재 유효한 모든 인증서를 찾는 데 사용할 Now 수 있습니다.

FindByTimeNotYetValid 7

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 현지 시간의 값이어야 DateTime 합니다. 이 값은 향후에 있을 필요가 없습니다. 예를 들어 작년 마지막 날에 대한 작업 결과의 교집합과 연산 FindByTimeNotYetValid 결과를 Find(X509FindType, Object, Boolean) 사용하여 현재 연도 FindByTimeNotYetValidFind(X509FindType, Object, Boolean)FindByTimeValid 에 유효한 인증서를 찾을 수 있습니다Now.

FindByTimeExpired 8

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 현지 시간의 값이어야 DateTime 합니다. 예를 들어 연산 결과에서 연중 마지막 날의 Find(X509FindType, Object, Boolean) 작업 FindByTimeExpired 결과를 제거하여 연말까지 유효한 모든 인증서를 Find(X509FindType, Object, Boolean)Now찾을 수 있습니다.

FindByTemplateName 9

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서의 템플릿 이름(예: "ClientAuth")을 나타내는 문자열이어야 합니다. 템플릿 이름은 인증서의 사용을 지정하는 X509 버전 3 확장입니다.

FindByApplicationPolicy 10

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 애플리케이션 정책 식별자 또는 인증서의 개체 식별자(OID 또는Oid)를 나타내는 문자열이어야 합니다. 예를 들어 "파일 시스템 암호화" 또는 "1.3.6.1.4.1.311.10.3.4"를 사용할 수 있습니다. 지역화할 애플리케이션의 경우 친숙한 이름이 지역화되어 있으므로 OID 값을 사용해야 합니다.

FindByCertificatePolicy 11

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 인증서 정책의 이름 또는 개체 식별자(OID 또는Oid)를 나타내는 문자열이어야 합니다. 모범 사례는 "1.3.6.1.4.1.311.10.3.4"와 같은 OID를 사용하는 것입니다. 지역화할 애플리케이션의 경우 친숙한 이름이 지역화되어 있으므로 OID를 사용해야 합니다.

FindByExtension 12

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 찾을 확장을 설명하는 문자열이어야 합니다. OID(개체 식별자)는 OID 값과 일치하는 확장명이 있는 모든 인증서를 검색하도록 메서드에 지시 Find(X509FindType, Object, Boolean) 하는 데 가장 일반적으로 사용됩니다.

FindByKeyUsage 13

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) 키 사용을 나타내는 문자열이거나 요청된 모든 키 사용을 포함하는 비트 마스크를 나타내는 정수여야 합니다. 문자열 값의 경우 한 번에 하나의 키 사용만 지정할 수 있지만 Find(X509FindType, Object, Boolean) 메서드를 연계 시퀀스에서 사용하여 요청된 사용량의 교집합을 가져올 수 있습니다. 예를 들어 매개 변수를 findValue "KeyEncipherment" 또는 정수로 설정할 수 있습니다(0x30 "KeyEncipherment" 및 "DataEncipherment"를 나타낸다). 열거형의 X509KeyUsageFlags 값도 사용할 수 있습니다.

FindBySubjectKeyIdentifier 14

메서드의 findValue 매개 변수는 Find(X509FindType, Object, Boolean) UI에 표시된 것처럼 "F3E815D45E83B8477B9284113C64EF208E897112"과 같이 16진수의 주체 키 식별자를 나타내는 문자열이어야 합니다.

예제

다음 예제에서는 현재 사용자의 개인 인증서 저장소를 열고 유효한 인증서만 찾고 사용자가 인증서를 선택할 수 있도록 한 다음 콘솔에 인증서 정보를 씁니다. 출력은 선택한 인증서에 따라 달라집니다.

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

설명

X509FindType 는 메서드에 대한 매개 변수에 findValue 제공된 값의 형식을 식별합니다 Find . 주체 이름, 지문, 일련 번호, 유효한 날짜 범위 또는 기타 값으로 컬렉션을 검색 X509FindType 하는 데 사용할 X509Certificate2 수 있습니다.

값 형식의 FindByTime 조합을 사용하여 지정된 시간 범위에서 유효한 인증서를 찾을 수 있습니다. 지정된 시간 동안 FindByTimeValid, FindByTimeNotYetValid 및 FindByTimeExpired를 사용하여 반환된 인증서의 합집합은 쿼리된 컬렉션의 모든 인증서를 나타냅니다.

적용 대상