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.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

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 distribuidos. 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 en minúsculas.

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

  • Los delimitadores se pueden seguir por 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