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.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 |
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de