X500DistinguishedNameFlags Enum

Definition

Anger egenskaperna för det unika X.500-namnet.

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

public enum class X500DistinguishedNameFlags
[System.Flags]
public enum X500DistinguishedNameFlags
[<System.Flags>]
type X500DistinguishedNameFlags = 
Public Enum X500DistinguishedNameFlags
Arv
X500DistinguishedNameFlags
Attribut

Fält

Name Värde Description
None 0

Det unika namnet har inga särskilda egenskaper.

Reversed 1

Det unika namnet är omvänd.

UseSemicolons 16

Det unika namnet använder semikolon.

DoNotUsePlusSign 32

Det unika namnet använder inte plustecknet.

DoNotUseQuotes 64

Det unika namnet använder inte citattecken.

UseCommas 128

Det unika namnet använder kommatecken.

UseNewLines 256

Det unika namnet använder det nya radtecknet.

UseUTF8Encoding 4096

Det unika namnet använder UTF8-kodning i stället för Unicode-teckenkodning.

UseT61Encoding 8192

Det unika namnet använder T61-kodning.

ForceUTF8Encoding 16384

Tvingar det unika namnet att koda specifika X.500-nycklar som UTF-8-strängar i stället för utskrivbara Unicode-strängar. Mer information och listan över X.500-nycklar som påverkas finns i uppräkningen X500NameFlags.

Exempel

I följande kodexempel visas hur du använder X500DistinguishedNameFlags uppräkningen.

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

Kommentarer

Den här uppräkningen används med X500DistinguishedName klassen för att ange specialtecken som finns i det unika namnet.

Flera värden utesluts ömsesidigt i den här uppräkningen. använd endast ett av dessa värden för att definiera de särskilda egenskaperna för ett unikt X.500-namn. Ange till exempel bara ett av UseCommasvärdena , UseNewLines och UseSemicolons . Du anger också antingen UseT61Encoding eller UseUTF8Encoding.

Gäller för