X500DistinguishedName Класс

Определение

Представляет различающееся имя сертификата X.509.Represents the distinguished name of an X509 certificate. Этот класс не наследуется.This class cannot be inherited.

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.The following code example shows how to use the X500DistinguishedName class.

#using <System.dll>
#using <system.security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Permissions;
using namespace System::IO;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store ^ store = gcnew X509Store( "MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection ^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      X509Certificate2Collection ^ fcollection = dynamic_cast<X509Certificate2Collection^>(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: {0}{1}", scollection->Count, Environment::NewLine );
      System::Collections::IEnumerator^ myEnum = scollection->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
         X500DistinguishedName ^ dname = gcnew X500DistinguishedName( x509->SubjectName );
         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." );
   }

}

using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class X500Sample
{
    static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            X509Certificate2Collection fcollection = (X509Certificate2Collection)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: {0}{1}", scollection.Count, Environment.NewLine);
            foreach (X509Certificate2 x509 in scollection)
            {
                X500DistinguishedName dname = new X500DistinguishedName(x509.SubjectName);
                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
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates



Class X500Sample
   Shared 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 = CType(store.Certificates, X509Certificate2Collection)
         Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
         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)
     msg = "Number of certificates: " & scollection.Count & Environment.NewLine
     MsgBox(msg)
         Dim x509 As X509Certificate2
         For Each x509 In  scollection
            Dim dname As New X500DistinguishedName(x509.SubjectName)
        msg = "X500DistinguishedName: " & dname.Name & Environment.NewLine
     MsgBox(msg)
            x509.Reset()
         Next x509
         store.Close()
     Catch e As Exception
            msg = "Error: Information could not be written out for this certificate."
            MsgBox(msg)
      End Try
   End Sub
End Class

Комментарии

Этот класс похож на расширение SubjectName свойства или IssuerName , которое является именем лица или сущности, к которой выдается сертификат.This class is like an extension to the SubjectName or IssuerName property, which is the name of the person or entity that the certificate is being issued to. X. 500 — это Международный стандарт для распределенных служб каталогов.X.500 is an international standard for distributed directory services. Различающееся имя имеет следующий формат:The distinguished name uses the following format:

[X500:/C = Каунтрикоде/O = организация/подразделение = Организатионунит/CN = CommonName][X500:/C=CountryCode/O=Organization/OU=OrganizationUnit/CN=CommonName]

Применяются следующие ограничения длины полей:The following field length limits apply:

ПолеField Ограничение длиныLength Limit
каунтрикодеCountryCode 2 символа2 characters
РазделенияOrganization До 64 символовUp to 64 characters
организатионунитOrganizationUnit До 32 символовUp to 32 characters
CommonNameCommonName До 64 символовUp to 64 characters

Применяются следующие правила.The following guidelines apply:

  • Значения полей могут быть прописными или строчными буквами.Field values can be uppercase or lowercase.

  • Разделители являются знаками косой черты (/) и должны располагаться перед первым значением и между последовательными значениями.Delimiters are slash marks (/) and must appear before the first value and between subsequent values.

  • За разделителями может следовать пробел.Delimiters can be followed by a space.

Ниже приведен пример правильно отформатированного имени: [X500:/ C = US/O = Microsoft/OU = WGA/CN = Тедст]The following is an example of a correctly formatted name: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

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

X500DistinguishedName(AsnEncodedData)

Инициализирует новый экземпляр класса X500DistinguishedName, используя указанный объект AsnEncodedData.Initializes a new instance of the X500DistinguishedName class using the specified AsnEncodedData object.

X500DistinguishedName(Byte[])

Инициализирует новый экземпляр класса X500DistinguishedName с использованием информации из указанного массива байтов.Initializes a new instance of the X500DistinguishedName class using information from the specified byte array.

X500DistinguishedName(String)

Инициализирует новый экземпляр класса X500DistinguishedName с использованием информации из указанного строки.Initializes a new instance of the X500DistinguishedName class using information from the specified string.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Инициализирует новый экземпляр класса X500DistinguishedName с использованием указанной строки и флага X500DistinguishedNameFlags.Initializes a new instance of the X500DistinguishedName class using the specified string and X500DistinguishedNameFlags flag.

X500DistinguishedName(X500DistinguishedName)

Инициализирует новый экземпляр класса X500DistinguishedName, используя указанный объект X500DistinguishedName.Initializes a new instance of the X500DistinguishedName class using the specified X500DistinguishedName object.

Свойства

Name

Получает различающееся имя с разделителями-запятыми из сертификата X500.Gets the comma-delimited distinguished name from an X500 certificate.

Oid

Получает или задает значение Oid для объекта AsnEncodedData.Gets or sets the Oid value for an AsnEncodedData object.

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

Получает или задает данные в кодировке ASN.1, представленные в массиве байтов.Gets or sets the Abstract Syntax Notation One (ASN.1)-encoded data represented in a byte array.

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

Методы

CopyFrom(AsnEncodedData)

Копирует информацию из объекта AsnEncodedData.Copies information from an AsnEncodedData object.

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

Декодирует различающееся имя с помощью характеристик, заданных параметром flag.Decodes a distinguished name using the characteristics specified by the flag parameter.

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Format(Boolean)

Возвращает форматированную версию различающегося имени сертификата X500 для печати или вывода в текстовое окно или на консоль.Returns a formatted version of an X500 distinguished name for printing or for output to a text window or to a console.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

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