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;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

class X500Sample
{
    static void Main()
    {
        try
        {
            X509Store store = new("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
            X509Certificate2Collection collection = store.Certificates;
            X509Certificate2Collection fcollection = 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: {scollection.Count}{Environment.NewLine}");
            foreach (X509Certificate2 x509 in scollection)
            {
                X500DistinguishedName dname = new(
                    x509.SubjectName.Name,
                    X500DistinguishedNameFlags.Reversed | X500DistinguishedNameFlags.UseSemicolons
                    );
                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.X509Certificates

Class X500Sample
    Shared s_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 = store.Certificates
            Dim fcollection As X509Certificate2Collection = collection.Find(X509FindType.FindByTimeValid, Date.Now, False)
            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
                )
            s_msg = "Number of certificates: " & scollection.Count & Environment.NewLine
            Console.WriteLine(s_msg)
            Dim x509 As X509Certificate2
            For Each x509 In scollection
                Dim dname As New X500DistinguishedName(
                x509.SubjectName.Name,
                X500DistinguishedNameFlags.Reversed Or X500DistinguishedNameFlags.UseSemicolons
                )
                s_msg = "X500DistinguishedName: " & dname.Name & Environment.NewLine
                Console.WriteLine(s_msg)
                x509.Reset()
            Next x509
            store.Close()
        Catch e As Exception
            s_msg = "Error: Information could not be written out for this certificate."
            Console.WriteLine(s_msg)
        End Try
    End Sub
End Class

注釈

このクラスは、 プロパティまたは IssuerName プロパティのSubjectName拡張機能に似ています。これは、証明書の発行先のユーザーまたはエンティティの名前です。 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)

適用対象