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


X500DistinguishedName Класс

Определение

Представляет различающееся имя сертификата X.509. Этот класс не наследуется.

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

Комментарии

Этот класс похож на 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)

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

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, представленные в массиве байтов.

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

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