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.
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) |
Декодирует различающееся имя с помощью характеристик, заданных параметром |
EnumerateRelativeDistinguishedNames(Boolean) |
Выполняет итерацию по значениям RelativeDistinguishedName в этом различаемом значении имени. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Format(Boolean) |
Возвращает форматированную версию различающегося имени сертификата X500 для печати или вывода в текстовое окно или на консоль. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |