X500DistinguishedName Classe

Definição

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

public sealed class X500DistinguishedName : System.Security.Cryptography.AsnEncodedData
Herança
X500DistinguishedName

Exemplos

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

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.");
        }
    }
}

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.

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

  • Os 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

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1