Comparteix a través de


X500DistinguishedName Clase

Definición

Representa el nombre distintivo de un certificado X509. Esta clase no puede heredarse.

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

Ejemplos

En el ejemplo de código siguiente se muestra cómo se utiliza la clase X500DistinguishedName.

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

Comentarios

Esta clase es como una extensión a la SubjectName propiedad o IssuerName , que es el nombre de la persona o entidad a la que se emite el certificado. X.500 es un estándar internacional para los servicios de directorio distribuido. El nombre distintivo usa el formato siguiente:

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

Se aplican los siguientes límites de longitud de campo:

Campo Límite de longitud
CountryCode 2 caracteres
Organización Hasta 64 caracteres
OrganizationUnit Hasta 32 caracteres
CommonName Hasta 64 caracteres

Se aplican las directrices siguientes:

  • Los valores de campo pueden estar en mayúsculas o minúsculas.

  • Los delimitadores son marcas de barra diagonal (/) y deben aparecer antes del primer valor y entre los valores posteriores.

  • Los delimitadores pueden seguir un espacio.

A continuación se muestra un ejemplo de un nombre con formato correcto: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]

Constructores

X500DistinguishedName(AsnEncodedData)

Inicializa una nueva instancia de la clase X500DistinguishedName utilizando el objeto AsnEncodedData especificado.

X500DistinguishedName(Byte[])

Inicializa una nueva instancia de la clase X500DistinguishedName utilizando información de la matriz de bytes especificada.

X500DistinguishedName(ReadOnlySpan<Byte>)

Inicializa una instancia nueva de la clase X500DistinguishedName con información procedente de los datos proporcionados.

X500DistinguishedName(String)

Inicializa una nueva instancia de la clase X500DistinguishedName utilizando información procedente de la cadena especificada.

X500DistinguishedName(String, X500DistinguishedNameFlags)

Inicializa una nueva instancia de la clase X500DistinguishedName utilizando la cadena especificada y el marcador X500DistinguishedNameFlags.

X500DistinguishedName(X500DistinguishedName)

Inicializa una nueva instancia de la clase X500DistinguishedName utilizando el objeto X500DistinguishedName especificado.

Propiedades

Name

Obtiene el nombre distintivo separado por comas de un certificado X500.

Oid

Obtiene o establece el valor Oid de un objeto AsnEncodedData.

(Heredado de AsnEncodedData)
RawData

Obtiene o establece los datos codificados mediante Notación de sintaxis abstracta uno (ASN.1, Abstract Syntax Notation One) que están representados en una matriz de bytes.

(Heredado de AsnEncodedData)

Métodos

CopyFrom(AsnEncodedData)

Copia información de un objeto AsnEncodedData.

(Heredado de AsnEncodedData)
Decode(X500DistinguishedNameFlags)

Descodifica un nombre distintivo utilizando las características especificadas por el parámetro flag.

EnumerateRelativeDistinguishedNames(Boolean)

Recorre en iteración los valores RelativeDistinguishedName dentro de este valor de nombre distintivo.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Format(Boolean)

Devuelve una versión con formato de un nombre distintivo X500 para imprimirlo o enviarlo a una ventana de texto o a una consola.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a