X500DistinguishedName Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 |
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) |