語言

X500DistinguishedNameFlags 列舉

定義

指定 X.500 辨別名稱的特性。

此列舉支援其成員值的位元組合。

public enum class X500DistinguishedNameFlags
[System.Flags]
public enum X500DistinguishedNameFlags
[<System.Flags>]
type X500DistinguishedNameFlags = 
Public Enum X500DistinguishedNameFlags
繼承
X500DistinguishedNameFlags
屬性

欄位

名稱 值 Description
None 0

這個獨特的名稱並無特殊特徵。

Reversed 1

尊貴名稱為反轉。

UseSemicolons 16

這個尊貴名稱使用分號。

DoNotUsePlusSign 32

這個傑出的名字不使用加號。

DoNotUseQuotes 64

這個尊貴的名字不使用引號。

UseCommas 128

這個尊貴的名字使用逗號。

UseNewLines 256

這個特別名稱使用了新的行字。

UseUTF8Encoding 4096

這個獨特名稱使用 UTF8 編碼,取代 Unicode 字元編碼。

UseT61Encoding 8192

這個獨特名稱使用 T61 編碼。

ForceUTF8Encoding 16384

強制區別名稱將特定的 X.500 鍵碼編碼為 UTF-8 字串,而非可列印的 Unicode 字串。 欲了解更多資訊及受影響的 X.500 鍵列表,請參閱 X500NameFlags 列舉。

範例

以下程式碼範例說明如何使用列舉。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 傑出名稱的特殊特徵。 例如,只指定其中一個 UseCommas、 UseNewLines 、 和 UseSemicolons 值。 你也可以指定 UseT61Encoding 或 UseUTF8Encoding。

適用於