X500DistinguishedName Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta il nome distinto di un certificato X509. La classe non può essere ereditata.
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
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrato l'utilizzo della classe 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
Commenti
Questa classe è simile a un'estensione alla SubjectName proprietà o IssuerName , ovvero il nome della persona o dell'entità a cui viene emesso il certificato. X.500 è uno standard internazionale per i servizi directory distribuiti. Il nome distinto usa il formato seguente:
[X500:/C=CountryCode/O=Organization/OU=OrganizationUnit/CN=CommonName]
Si applicano i limiti di lunghezza del campo seguenti:
Campo | Limite di lunghezza |
---|---|
CountryCode | 2 caratteri |
Organization | Fino a 64 caratteri |
OrganizationUnit | Fino a 32 caratteri |
CommonName | Fino a 64 caratteri |
Vengono applicate le linee guida riportate di seguito:
I valori dei campi possono essere maiuscoli o minuscoli.
I delimitatori sono segni di barra (/) e devono essere visualizzati prima del primo valore e tra i valori successivi.
I delimitatori possono essere seguiti da uno spazio.
Di seguito è riportato un esempio di nome formattato correttamente: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]
Costruttori
X500DistinguishedName(AsnEncodedData) |
Inizializza una nuova istanza della classe X500DistinguishedName usando l'oggetto AsnEncodedData specificato. |
X500DistinguishedName(Byte[]) |
Inizializza una nuova istanza della classe X500DistinguishedName utilizzando le informazioni derivate dalla matrice di byte specificata. |
X500DistinguishedName(ReadOnlySpan<Byte>) |
Inizializza una nuova istanza della classe X500DistinguishedName usando le informazioni derivate dai dati specificati. |
X500DistinguishedName(String) |
Inizializza una nuova istanza della classe X500DistinguishedName utilizzando le informazioni derivate dalla stringa specificata. |
X500DistinguishedName(String, X500DistinguishedNameFlags) |
Inizializza una nuova istanza della classe X500DistinguishedName utilizzando la stringa specificata e il flag X500DistinguishedNameFlags. |
X500DistinguishedName(X500DistinguishedName) |
Inizializza una nuova istanza della classe X500DistinguishedName usando l'oggetto X500DistinguishedName specificato. |
Proprietà
Name |
Ottiene il nome distinto delimitato da virgole da un certificato X500. |
Oid |
Ottiene o imposta il valore Oid per un oggetto AsnEncodedData. (Ereditato da AsnEncodedData) |
RawData |
Ottiene o imposta i dati con codifica ASN.1 rappresentati in una matrice di byte. (Ereditato da AsnEncodedData) |
Metodi
CopyFrom(AsnEncodedData) |
Copia le informazioni da un oggetto AsnEncodedData. (Ereditato da AsnEncodedData) |
Decode(X500DistinguishedNameFlags) |
Decodifica un nome distinto utilizzando le caratteristiche specificate dal parametro |
EnumerateRelativeDistinguishedNames(Boolean) |
Scorre i valori RelativeDistinguishedName all'interno di questo valore di nome distinto. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Format(Boolean) |
Restituisce una versione formattata di un nome distinto X500 per la visualizzazione o l'output in una finestra di testo o una console. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |