X500DistinguishedName Classe

Definição

Representa o nome diferenciado de um certificado X509. Essa classe não pode ser herdada.

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
Herança
X500DistinguishedName

Exemplos

O exemplo de código a seguir mostra como usar a X500DistinguishedName classe .

#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

Comentários

Essa classe é como uma extensão para a SubjectName propriedade ou IssuerName , que é o nome da pessoa ou entidade para a qual o certificado está sendo emitido. O X.500 é um padrão internacional para serviços de diretório distribuído. O nome diferenciado usa o seguinte formato:

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

Os seguintes limites de comprimento de campo se aplicam:

Campo Limite de comprimento
CountryCode 2 caracteres
Organização Até 64 caracteres
OrganizationUnit Até 32 caracteres
Commonname Até 64 caracteres

As seguintes diretrizes se aplicam:

  • Os valores de campo podem ser maiúsculos ou minúsculos.

  • Delimitadores são marcas de barra (/) e devem aparecer antes do primeiro valor e entre os valores subsequentes.

  • Delimitadores podem ser seguidos por um espaço.

Veja a seguir um exemplo de um nome formatado corretamente: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

Construtores

X500DistinguishedName(AsnEncodedData)

Inicializa uma nova instância da classe X500DistinguishedName usando o objeto AsnEncodedData especificado.

X500DistinguishedName(Byte[])

Inicializa uma nova instância da classe X500DistinguishedName usando informações da matriz de bytes especificada.

X500DistinguishedName(ReadOnlySpan<Byte>)

Inicializa uma nova instância da classe X500DistinguishedName usando informações dos dados fornecidos.

X500DistinguishedName(String)

Inicializa uma nova instância da classe X500DistinguishedName usando informações da cadeia de caracteres especificada.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Inicializa uma nova instância da classe X500DistinguishedName usando a cadeia de caracteres e o sinalizador X500DistinguishedNameFlags especificados.

X500DistinguishedName(X500DistinguishedName)

Inicializa uma nova instância da classe X500DistinguishedName usando o objeto X500DistinguishedName especificado.

Propriedades

Name

Obtém o nome diferenciado delimitado por vírgula de um certificado X500.

Oid

Obtém ou define o valor Oid para um objeto AsnEncodedData.

(Herdado de AsnEncodedData)
RawData

Obtém ou define os dados codificados em ASN.1 (Abstract Syntax Notation One) representados em uma matriz de bytes.

(Herdado de AsnEncodedData)

Métodos

CopyFrom(AsnEncodedData)

Copia informações de um objeto AsnEncodedData.

(Herdado de AsnEncodedData)
Decode(X500DistinguishedNameFlags)

Decodifica um nome diferenciado usando as características especificadas pelo parâmetro flag.

EnumerateRelativeDistinguishedNames(Boolean)

Itera sobre os valores RelativeDistinguishedName dentro desse valor de nome diferenciado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Format(Boolean)

Retorna uma versão formatada de um nome diferenciado do X500 de impressão ou de saída para uma janela de texto ou para um console.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a