X500DistinguishedName Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Represents the distinguished name of an X509 certificate. This class cannot be inherited.
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
- Inheritance
Examples
The following code example shows how to use the X500DistinguishedName class.
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
Remarks
This class is like an extension to the SubjectName or IssuerName property, which is the name of the person or entity that the certificate is being issued to. X.500 is an international standard for distributed directory services. The distinguished name uses the following format:
[X500:/C=CountryCode/O=Organization/OU=OrganizationUnit/CN=CommonName]
The following field length limits apply:
Field | Length Limit |
---|---|
CountryCode | 2 characters |
Organization | Up to 64 characters |
OrganizationUnit | Up to 32 characters |
CommonName | Up to 64 characters |
The following guidelines apply:
Field values can be uppercase or lowercase.
Delimiters are slash marks (/) and must appear before the first value and between subsequent values.
Delimiters can be followed by a space.
The following is an example of a correctly formatted name: [X500:/ C=US/ O=Microsoft/ OU=WGA/ CN=TedSt]
Constructors
X500DistinguishedName(AsnEncodedData) |
Initializes a new instance of the X500DistinguishedName class using the specified AsnEncodedData object. |
X500DistinguishedName(Byte[]) |
Initializes a new instance of the X500DistinguishedName class using information from the specified byte array. |
X500DistinguishedName(ReadOnlySpan<Byte>) |
Initializes a new instance of the X500DistinguishedName class using information from the provided data. |
X500DistinguishedName(String) |
Initializes a new instance of the X500DistinguishedName class using information from the specified string. |
X500DistinguishedName(String, X500DistinguishedNameFlags) |
Initializes a new instance of the X500DistinguishedName class using the specified string and X500DistinguishedNameFlags flag. |
X500DistinguishedName(X500DistinguishedName) |
Initializes a new instance of the X500DistinguishedName class using the specified X500DistinguishedName object. |
Properties
Name |
Gets the comma-delimited distinguished name from an X500 certificate. |
Oid |
Gets or sets the Oid value for an AsnEncodedData object. (Inherited from AsnEncodedData) |
RawData |
Gets or sets the Abstract Syntax Notation One (ASN.1)-encoded data represented in a byte array. (Inherited from AsnEncodedData) |
Methods
CopyFrom(AsnEncodedData) |
Copies information from an AsnEncodedData object. (Inherited from AsnEncodedData) |
Decode(X500DistinguishedNameFlags) |
Decodes a distinguished name using the characteristics specified by the |
EnumerateRelativeDistinguishedNames(Boolean) |
Iterates over the RelativeDistinguishedName values within this distinguished name value. |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
Format(Boolean) |
Returns a formatted version of an X500 distinguished name for printing or for output to a text window or to a console. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |