X500DistinguishedName Classe

Definição

Representa o nome distinto de um certificado X509. Esta 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 seguinte 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.");
        }
    }
}
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

Observações

Esta classe é como uma extensão da SubjectName propriedade IssuerName , que é o nome da pessoa ou entidade a quem o certificado está a ser emitido. X.500 é um padrão internacional para serviços de diretório distribuídos. O nome distinto utiliza o seguinte formato:

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

Aplicam-se os seguintes limites de comprimento de campo:

Campo Limite de comprimento
Código de País 2 personagens
Organization Até 64 caracteres
Organização Unidade Até 32 personagens
Nome Comum Até 64 caracteres

Aplicam-se as seguintes diretrizes:

  • Os valores dos campos podem ser maiúsculos ou minúsculos.

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

  • Os delimitadores podem ser seguidos por um espaço.

Segue-se um exemplo de nome corretamente formatado: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

Construtores

Name Description
X500DistinguishedName(AsnEncodedData)

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

X500DistinguishedName(Byte[])

Inicializa uma nova instância da X500DistinguishedName classe usando informação do array de bytes especificado.

X500DistinguishedName(ReadOnlySpan<Byte>)

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

X500DistinguishedName(String, X500DistinguishedNameFlags)

Inicializa uma nova instância da X500DistinguishedName classe usando a string e X500DistinguishedNameFlags a flag especificadas.

X500DistinguishedName(String)

Inicializa uma nova instância da X500DistinguishedName classe usando informação da cadeia especificada.

X500DistinguishedName(X500DistinguishedName)

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

Propriedades

Name Description
Name

Recebe o nome distinto delimitado por vírgulas de um certificado X500.

Oid

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

(Herdado de AsnEncodedData)
RawData

Obtém ou define os dados codificados em Notação de Sintaxe Abstrata Um (ASN.1) representados num array de bytes.

(Herdado de AsnEncodedData)

Métodos

Name Description
CopyFrom(AsnEncodedData)

Copia informação de um AsnEncodedData objeto.

(Herdado de AsnEncodedData)
Decode(X500DistinguishedNameFlags)

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

EnumerateRelativeDistinguishedNames(Boolean)

Itera sobre os valores RelativeDistinguishedName dentro deste valor de nome distinto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Format(Boolean)

Devolve uma versão formatada de um nome distinto X500 para impressão ou para saída numa janela de texto ou numa consola.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a