Udostępnij za pośrednictwem


X500DistinguishedName Klasa

Definicja

Reprezentuje nazwę wyróżniającą certyfikatu X509. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
X500DistinguishedName

Przykłady

W poniższym przykładzie kodu pokazano, jak używać X500DistinguishedName klasy.

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

Uwagi

Ta klasa jest jak rozszerzenie do SubjectName właściwości lub IssuerName , która jest nazwą osoby lub jednostki, do której jest wystawiany certyfikat. X.500 to międzynarodowy standard usług katalogowych rozproszonych. Nazwa wyróżniająca używa następującego formatu:

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

Obowiązują następujące limity długości pola:

Pole Limit długości
CountryCode 2 znaki
Organizacja Maksymalnie 64 znaki
OrganizacjaUnit Maksymalnie 32 znaki
Nazwa pospolita Maksymalnie 64 znaki

Należy przestrzegać następujących wytycznych:

  • Wartości pól mogą być wielkie lub małe.

  • Ograniczniki są znakami ukośnikowymi (/) i muszą pojawić się przed pierwszą wartością i między kolejnymi wartościami.

  • Ograniczniki można śledzić spacją.

Poniżej przedstawiono przykład poprawnie sformatowanej nazwy: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

Konstruktory

X500DistinguishedName(AsnEncodedData)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego AsnEncodedData obiektu.

X500DistinguishedName(Byte[])

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z określonej tablicy bajtów.

X500DistinguishedName(ReadOnlySpan<Byte>)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z podanych danych.

X500DistinguishedName(String)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z określonego ciągu.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego ciągu i X500DistinguishedNameFlags flagi.

X500DistinguishedName(X500DistinguishedName)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego X500DistinguishedName obiektu.

Właściwości

Name

Pobiera rozdzielaną przecinkami nazwę wyróżniającą z certyfikatu X500.

Oid

Pobiera lub ustawia Oid wartość obiektu AsnEncodedData .

(Odziedziczone po AsnEncodedData)
RawData

Pobiera lub ustawia dane zakodowane w postaci składni abstrakcyjnej (ASN.1) zakodowane w tablicy bajtów.

(Odziedziczone po AsnEncodedData)

Metody

CopyFrom(AsnEncodedData)

Kopiuje informacje z AsnEncodedData obiektu.

(Odziedziczone po AsnEncodedData)
Decode(X500DistinguishedNameFlags)

Dekoduje nazwę wyróżniającą przy użyciu cech określonych przez flag parametr .

EnumerateRelativeDistinguishedNames(Boolean)

Iteruje wartości RelativeDistinguishedName w ramach tej wartości nazwy wyróżniającej.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Format(Boolean)

Zwraca sformatowaną wersję nazwy wyróżniającej X500 do drukowania lub danych wyjściowych do okna tekstowego lub konsoli.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy