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 辨別名稱的特殊特性。 例如,只指定其中一個 UseCommas
、 UseNewLines
和 UseSemicolons
值。 您也會指定 UseT61Encoding
或 UseUTF8Encoding
。