X500DistinguishedName Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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 |
| 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) |