X500DistinguishedName Klasa

Definicja

Reprezentuje nazwę wyróżniającą certyfikatu X509. Klasa ta nie może być dziedziczona.

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
Dziedziczenie
X500DistinguishedName

Przykłady

W poniższym przykładzie kodu pokazano, jak używać X500DistinguishedName klasy.

#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

Uwagi

Ta klasa jest jak rozszerzenie do SubjectName właściwości lub IssuerName , która jest nazwą osoby lub jednostki, do której jest wystawiany certyfikat. X.500 to międzynarodowy standard usług katalogowych rozproszonych. Nazwa wyróżniająca używa następującego formatu:

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

Obowiązują następujące limity długości pola:

Pole Limit długości
CountryCode 2 znaki
Organizacja Maksymalnie 64 znaki
OrganizacjaUnit Maksymalnie 32 znaki
Nazwa pospolita Maksymalnie 64 znaki

Należy przestrzegać następujących wytycznych:

  • Wartości pól mogą być wielkie lub małe.

  • Ograniczniki są znakami ukośnikowymi (/) i muszą pojawić się przed pierwszą wartością i między kolejnymi wartościami.

  • Ograniczniki można śledzić spacją.

Poniżej przedstawiono przykład poprawnie sformatowanej nazwy: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

Konstruktory

X500DistinguishedName(AsnEncodedData)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego AsnEncodedData obiektu.

X500DistinguishedName(Byte[])

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z określonej tablicy bajtów.

X500DistinguishedName(ReadOnlySpan<Byte>)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z podanych danych.

X500DistinguishedName(String)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu informacji z określonego ciągu.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego ciągu i X500DistinguishedNameFlags flagi.

X500DistinguishedName(X500DistinguishedName)

Inicjuje X500DistinguishedName nowe wystąpienie klasy przy użyciu określonego X500DistinguishedName obiektu.

Właściwości

Name

Pobiera rozdzielaną przecinkami nazwę wyróżniającą z certyfikatu X500.

Oid

Pobiera lub ustawia Oid wartość obiektu AsnEncodedData .

(Odziedziczone po AsnEncodedData)
RawData

Pobiera lub ustawia dane zakodowane w postaci składni abstrakcyjnej (ASN.1) zakodowane w tablicy bajtów.

(Odziedziczone po AsnEncodedData)

Metody

CopyFrom(AsnEncodedData)

Kopiuje informacje z AsnEncodedData obiektu.

(Odziedziczone po AsnEncodedData)
Decode(X500DistinguishedNameFlags)

Dekoduje nazwę wyróżniającą przy użyciu cech określonych przez flag parametr .

EnumerateRelativeDistinguishedNames(Boolean)

Iteruje wartości RelativeDistinguishedName w ramach tej wartości nazwy wyróżniającej.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Format(Boolean)

Zwraca sformatowaną wersję nazwy wyróżniającej X500 do drukowania lub danych wyjściowych do okna tekstowego lub konsoli.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy