Condividi tramite


X500DistinguishedNameFlags Enumerazione

Definizione

Specifica le caratteristiche del nome distinto X.500.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

public enum class X500DistinguishedNameFlags
[System.Flags]
public enum X500DistinguishedNameFlags
[<System.Flags>]
type X500DistinguishedNameFlags = 
Public Enum X500DistinguishedNameFlags
Ereditarietà
X500DistinguishedNameFlags
Attributi

Campi

DoNotUsePlusSign 32

Il nome distinto non usa il segno più.

DoNotUseQuotes 64

Il nome distinto non usa le virgolette.

ForceUTF8Encoding 16384

Forza il nome distinto per codificare chiavi X.500 specifiche come stringhe UTF-8 anziché come stringhe Unicode stampabili. Per altre informazioni e per l'elenco di chiavi X.500 interessate, vedere l'enumerazione X500NameFlags.

None 0

Il nome distinto non ha caratteristiche speciali.

Reversed 1

Il nome distinto è inverso.

UseCommas 128

Il nome distinto usa le virgole.

UseNewLines 256

Il nome distinto usa il carattere di nuova riga.

UseSemicolons 16

Il nome distinto usa i punti e virgola.

UseT61Encoding 8192

Il nome distinto usa la codifica T61.

UseUTF8Encoding 4096

Il nome distinto usa la codifica UTF8 anziché la codifica di caratteri Unicode.

Esempio

Nell'esempio di codice seguente viene illustrato come usare l'enumerazione 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

Commenti

Questa enumerazione viene utilizzata con la X500DistinguishedName classe per indicare caratteri speciali contenuti nel nome distinto.

Diversi valori si escludono a vicenda in questa enumerazione; utilizzare solo uno di questi valori per definire le caratteristiche speciali di un nome distinto X.500. Ad esempio, specificare solo uno dei UseCommasvalori , UseNewLines e UseSemicolons . È anche possibile specificare UseT61Encoding o UseUTF8Encoding.

Si applica a