Поделиться через


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

Комментарии

Этот класс похож на расширение или SubjectNameIssuerName свойство, которое является именем лица или сущности, для которой выдан сертификат. X.500 — это международный стандарт для распределенных служб каталогов. Различающееся имя использует следующий формат:

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

Применяются следующие ограничения длины поля:

Поле Ограничение длины
Код страны 2 символа
Предприятие До 64 символов
OrganizationUnit До 32 символов
ОбщееИмя До 64 символов

Применяются следующие рекомендации.

  • Значения полей могут быть в верхнем или нижнем регистре.

  • Разделители — это знаки косой черты (/) и должны отображаться перед первым значением и между последующими значениями.

  • За разделителями можно следовать пробел.

Ниже приведен пример правильно отформатированного имени: [X500:/ C=US/O=Microsoft/OU=WGA/CN=TedSt]

Конструкторы

Имя Описание
X500DistinguishedName(AsnEncodedData)

Инициализирует новый экземпляр класса с помощью указанного X500DistinguishedNameAsnEncodedData объекта.

X500DistinguishedName(Byte[])

Инициализирует новый экземпляр X500DistinguishedName класса, используя сведения из указанного массива байтов.

X500DistinguishedName(ReadOnlySpan<Byte>)

Инициализирует новый экземпляр X500DistinguishedName класса, используя сведения из предоставленных данных.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Инициализирует новый экземпляр класса с помощью указанной X500DistinguishedName строки и X500DistinguishedNameFlags флага.

X500DistinguishedName(String)

Инициализирует новый экземпляр класса, используя сведения из указанной X500DistinguishedName строки.

X500DistinguishedName(X500DistinguishedName)

Инициализирует новый экземпляр класса с помощью указанного X500DistinguishedNameX500DistinguishedName объекта.

Свойства

Имя Описание
Name

Возвращает различающееся имя с разделителями-запятыми от сертификата X500.

Oid

Возвращает или задает Oid значение объекта AsnEncodedData .

(Унаследовано от AsnEncodedData)
RawData

Возвращает или задает абстрактные нотации синтаксиса One (ASN.1)- закодированные данные, представленные в массиве байтов.

(Унаследовано от 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)

Применяется к