X500DistinguishedName 클래스

정의

X509 인증서의 고유 이름을 나타냅니다. 이 클래스는 상속될 수 없습니다.

public ref class X500DistinguishedName sealed : System::Security::Cryptography::AsnEncodedData
public sealed class X500DistinguishedName : System.Security.Cryptography.AsnEncodedData
type X500DistinguishedName = class
    inherit AsnEncodedData
Public NotInheritable Class X500DistinguishedName
Inherits AsnEncodedData
상속
X500DistinguishedName

예제

다음 코드 예제에서는 X500DistinguishedName 클래스를 사용하는 방법을 보여 줍니다.

#using <System.dll>
#using <system.security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Permissions;
using namespace System::IO;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store ^ store = gcnew X509Store( "MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection ^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      X509Certificate2Collection ^ fcollection = dynamic_cast<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 );
      System::Collections::IEnumerator^ myEnum = scollection->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
         X500DistinguishedName ^ dname = gcnew X500DistinguishedName( x509->SubjectName );
         Console::WriteLine( "X500DistinguishedName: {0}{1}", dname->Name, Environment::NewLine );
         x509->Reset();
      }
      store->Close();
   }
   catch ( CryptographicException^ ) 
   {
      Console::WriteLine( "Information could not be written out for this certificate." );
   }

}
using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class X500Sample
{
    static void Main()
    {
        try
        {
            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)
            {
                X500DistinguishedName dname = new X500DistinguishedName(x509.SubjectName);
                Console.WriteLine("X500DistinguishedName: {0}{1}", dname.Name, Environment.NewLine);
                x509.Reset();
            }
            store.Close();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates



Class X500Sample
   Shared msg As String
   Shared 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)
         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)
     msg = "Number of certificates: " & scollection.Count & Environment.NewLine
     MsgBox(msg)
         Dim x509 As X509Certificate2
         For Each x509 In  scollection
            Dim dname As New X500DistinguishedName(x509.SubjectName)
        msg = "X500DistinguishedName: " & dname.Name & Environment.NewLine
     MsgBox(msg)
            x509.Reset()
         Next x509
         store.Close()
     Catch e As Exception
            msg = "Error: Information could not be written out for this certificate."
            MsgBox(msg)
      End Try
   End Sub
End Class

설명

이 클래스의 확장인 비슷합니다는 SubjectName 또는 IssuerName 사람 또는 인증서에 실행 되는 엔터티의 이름인 속성입니다. X.500은 분산된 디렉터리 서비스에 대 한 국제 표준 합니다. 고유 이름에는 다음 형식을 사용 합니다.

[X500:/C=CountryCode/O=Organization/OU=OrganizationUnit/CN=CommonName]

다음 필드 길이 제한이 적용 됩니다.

필드 길이 제한
CountryCode 2 자
조직 최대 64 자
OrganizationUnit 최대 32 자
CommonName 최대 64 자

다음과 같은 지침이 적용됩니다.

  • 필드 값은 대 / 소문자 구분 수 있습니다.

  • 구분 기호로 슬래시 기호 (/) 되며 첫 번째 값을 이전 및 이후의 각 값 사이 나타나야 합니다.

  • 구분 기호는 공백 올 수 있습니다.

다음은 올바르게 형식이 지정 된 이름의 예: [X500: / C = US / O = Microsoft / OU = WGA / CN = TedSt]

생성자

X500DistinguishedName(AsnEncodedData)

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

X500DistinguishedName(Byte[])

지정된 바이트 배열의 정보를 사용하여 X500DistinguishedName 클래스의 새 인스턴스를 초기화합니다.

X500DistinguishedName(ReadOnlySpan<Byte>)

제공된 데이터의 정보를 사용하여 X500DistinguishedName 클래스의 새 인스턴스를 초기화합니다.

X500DistinguishedName(String)

지정된 문자열의 정보를 사용하여 X500DistinguishedName 클래스의 새 인스턴스를 초기화합니다.

X500DistinguishedName(String, X500DistinguishedNameFlags)

지정된 문자열과 X500DistinguishedName 플래그를 사용하여 X500DistinguishedNameFlags 클래스의 새 인스턴스를 초기화합니다.

X500DistinguishedName(X500DistinguishedName)

지정된 X500DistinguishedName 개체를 사용하여 X500DistinguishedName 클래스의 새 인스턴스를 초기화합니다.

속성

Name

X500 인증서에서 쉼표로 구분된 고유 이름을 가져옵니다.

Oid

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

(다음에서 상속됨 AsnEncodedData)
RawData

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

(다음에서 상속됨 AsnEncodedData)

메서드

CopyFrom(AsnEncodedData)

AsnEncodedData 개체에서 정보를 복사합니다.

(다음에서 상속됨 AsnEncodedData)
Decode(X500DistinguishedNameFlags)

flag 매개 변수에 지정된 특징을 사용하여 고유 이름을 디코딩합니다.

EnumerateRelativeDistinguishedNames(Boolean)

이 고유 이름 값 내의 RelativeDistinguishedName 값을 반복합니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

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

인쇄하거나 텍스트 창 또는 콘솔에 출력할 수 있도록 형식이 지정된 버전의 X500 고유 이름을 반환합니다.

GetHashCode()

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

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

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

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

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

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

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

(다음에서 상속됨 Object)

적용 대상