X509BasicConstraintsExtension 클래스

정의

인증서에 설정된 제약 조건을 정의합니다. 이 클래스는 상속할 수 없습니다.

public ref class X509BasicConstraintsExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509BasicConstraintsExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509BasicConstraintsExtension = class
    inherit X509Extension
Public NotInheritable Class X509BasicConstraintsExtension
Inherits X509Extension
상속
X509BasicConstraintsExtension

예제

다음 코드 예제에서는 사용자의 개인 인증서 저장소를 열고 저장소의 각 인증서에 대 한 정보를 표시 하는 방법을 보여 줍니다. 이 예제에서는 클래스를 X509BasicConstraintsExtension 사용하여 정보를 표시합니다.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class CertSelect
{
    public static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            for (int i = 0; i < collection.Count; i++)
            {
                foreach (X509Extension extension in collection[i].Extensions)
                {
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")");

                    if (extension.Oid.FriendlyName == "Key Usage")
                    {
                        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
                        Console.WriteLine(ext.KeyUsages);
                    }

                    if (extension.Oid.FriendlyName == "Basic Constraints")
                    {
                        X509BasicConstraintsExtension ext = (X509BasicConstraintsExtension)extension;
                        Console.WriteLine(ext.CertificateAuthority);
                        Console.WriteLine(ext.HasPathLengthConstraint);
                        Console.WriteLine(ext.PathLengthConstraint);
                    }

                    if (extension.Oid.FriendlyName == "Subject Key Identifier")
                    {
                        X509SubjectKeyIdentifierExtension ext = (X509SubjectKeyIdentifierExtension)extension;
                        Console.WriteLine(ext.SubjectKeyIdentifier);
                    }

                    if (extension.Oid.FriendlyName == "Enhanced Key Usage")
                    {
                        X509EnhancedKeyUsageExtension ext = (X509EnhancedKeyUsageExtension)extension;
                        OidCollection oids = ext.EnhancedKeyUsages;
                        foreach (Oid oid in oids)
                        {
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")");
                        }
                    }
                }
            }
            store.Close();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates



Module CertSelect

    Sub Main()
        Try
            Dim store As New X509Store("MY", StoreLocation.CurrentUser)
            store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)

            Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
            For i As Integer = 0 To collection.Count - 1
                Dim extension As X509Extension
                For Each extension In collection(i).Extensions
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")")


                    If extension.Oid.FriendlyName = "Key Usage" Then
                        Dim ext As X509KeyUsageExtension = CType(extension, X509KeyUsageExtension)
                        Console.WriteLine(ext.KeyUsages)
                    End If

                    If extension.Oid.FriendlyName = "Basic Constraints" Then
                        Dim ext As X509BasicConstraintsExtension = CType(extension, X509BasicConstraintsExtension)
                        Console.WriteLine(ext.CertificateAuthority)
                        Console.WriteLine(ext.HasPathLengthConstraint)
                        Console.WriteLine(ext.PathLengthConstraint)
                    End If

                    If extension.Oid.FriendlyName = "Subject Key Identifier" Then
                        Dim ext As X509SubjectKeyIdentifierExtension = CType(extension, X509SubjectKeyIdentifierExtension)
                        Console.WriteLine(ext.SubjectKeyIdentifier)
                    End If

                    If extension.Oid.FriendlyName = "Enhanced Key Usage" Then
                        Dim ext As X509EnhancedKeyUsageExtension = CType(extension, X509EnhancedKeyUsageExtension)
                        Dim oids As OidCollection = ext.EnhancedKeyUsages
                        Dim oid As Oid
                        For Each oid In oids
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")")
                        Next oid
                    End If
                Next extension
            Next i
            store.Close()
        Catch
            Console.WriteLine("Information could not be written out for this certificate.")
        End Try

    End Sub
End Module

설명

이 클래스는 인증서에 설정된 기본 제약 조건을 정의하는 속성을 제공합니다.

생성자

Name Description
X509BasicConstraintsExtension()

X509BasicConstraintsExtension 클래스의 새 인스턴스를 초기화합니다.

X509BasicConstraintsExtension(AsnEncodedData, Boolean)

확장이 중요한지 여부를 식별하는 값과 개체를 사용하여 X509BasicConstraintsExtension 클래스의 새 인스턴스 AsnEncodedData 를 초기화합니다.

X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean)

X509BasicConstraintsExtension 클래스의 새 인스턴스를 초기화합니다. 매개 변수는 인증서가 CA(인증 기관) 인증서인지 여부를 나타내는 값, 인증서에 허용되는 경로 수준 수, 인증서 경로에 허용되는 수준 수 및 확장이 중요한지 여부를 나타내는 값을 지정합니다.

속성

Name Description
CertificateAuthority

인증서가 CA(인증 기관) 인증서인지 여부를 나타내는 값을 가져옵니다.

Critical

확장이 중요한지 여부를 나타내는 부울 값을 가져옵니다.

(다음에서 상속됨 X509Extension)
HasPathLengthConstraint

인증서에 허용되는 경로 수준 수에 제한이 있는지 여부를 나타내는 값을 가져옵니다.

Oid

개체의 Oid 값을 AsnEncodedData 가져오거나 설정합니다.

(다음에서 상속됨 AsnEncodedData)
PathLengthConstraint

인증서 경로에 허용되는 수준 수를 가져옵니다.

RawData

바이트 배열에 표시되는 ASN.1(Abstract Syntax Notation One) 인코딩 데이터를 가져오거나 설정합니다.

(다음에서 상속됨 AsnEncodedData)

메서드

Name Description
CopyFrom(AsnEncodedData)

개체를 사용하여 클래스의 X509BasicConstraintsExtension 새 인스턴스를 AsnEncodedData 초기화합니다.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
Format(Boolean)

ASN.1(Abstract Syntax Notation One)으로 인코딩된 데이터의 형식이 지정된 버전을 문자열로 반환합니다.

(다음에서 상속됨 AsnEncodedData)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상