X500DistinguishedNameFlags 枚举  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定 X.500 可分辨名称的特性。
此枚举支持其成员值的按位组合。
public enum class X500DistinguishedNameFlags[System.Flags]
public enum X500DistinguishedNameFlags[<System.Flags>]
type X500DistinguishedNameFlags = Public Enum X500DistinguishedNameFlags- 继承
- 属性
字段
| 名称 | 值 | 说明 | 
|---|---|---|
| DoNotUsePlusSign | 32 | 可分辨名称不使用加号。 | 
| DoNotUseQuotes | 64 | 可分辨名称不使用引号。 | 
| ForceUTF8Encoding | 16384 | 强制可分辨名称将特定 X.500 密钥编码为 UTF-8 字符串而不是可打印的 Unicode 字符串。 有关受影响的 X.500 密钥的详细信息和列表,请参阅 X500NameFlags enumeration(X500NameFlags 枚举)。 | 
| None | 0 | 可分辨名称没有特殊特性。 | 
| Reversed | 1 | 反转可分辨名称。 | 
| UseCommas | 128 | 可分辨名称使用逗号。 | 
| UseNewLines | 256 | 可分辨名称使用新行字符。 | 
| UseSemicolons | 16 | 可分辨名称使用分号。 | 
| UseT61Encoding | 8192 | 可分辨名称使用 T61 编码。 | 
| UseUTF8Encoding | 4096 | 可分辨名称使用 UTF8 编码而不是 Unicode 字符编码。 | 
示例
下面的代码示例演示如何使用 X500DistinguishedNameFlags 枚举。
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
注解
此枚举与 类一起使用, X500DistinguishedName 以指示可分辨名称中包含的特殊字符。
在此枚举中,多个值互斥;仅使用这些值之一来定义 X.500 可分辨名称的特殊特征。 例如,仅指定 、 UseNewLines 和 UseSemicolons 值之UseCommas一。 还可以指定 UseT61Encoding 或 UseUTF8Encoding。