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