X500DistinguishedNameFlags Enumeração

Definição

Especifica características do nome diferenciado do X.500.

Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.

public enum class X500DistinguishedNameFlags
[System.Flags]
public enum X500DistinguishedNameFlags
[<System.Flags>]
type X500DistinguishedNameFlags = 
Public Enum X500DistinguishedNameFlags
Herança
X500DistinguishedNameFlags
Atributos

Campos

DoNotUsePlusSign 32

O nome diferenciado não usa o sinal de adição.

DoNotUseQuotes 64

O nome diferenciado não usa aspas.

ForceUTF8Encoding 16384

Força o nome diferenciado a codificar chaves X.500 específicas como cadeias de caracteres UTF-8 em vez de cadeias de caracteres Unicode imprimíveis. Para obter mais informações e a lista de chaves X.500 afetadas, consulte a Enumeração X500NameFlags.

None 0

O nome diferenciado não tem nenhuma característica especial.

Reversed 1

O nome diferenciado está invertido.

UseCommas 128

O nome diferenciado usa vírgulas.

UseNewLines 256

O nome diferenciado usa o caractere de nova linha.

UseSemicolons 16

O nome diferenciado usa pontos-e-vírgulas.

UseT61Encoding 8192

O nome diferenciado usa a codificação T61.

UseUTF8Encoding 4096

O nome diferenciado usa a codificação UTF8 em vez da codificação de caracteres Unicode.

Exemplos

O exemplo de código a seguir mostra como usar a X500DistinguishedNameFlags enumeração.

#using <System.dll>
#using <system.security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Permissions;
using namespace System::IO;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   try
   {
      X509Store ^ store = gcnew X509Store( "MY",StoreLocation::CurrentUser );
      store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
      X509Certificate2Collection ^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
      X509Certificate2Collection ^ fcollection = dynamic_cast<X509Certificate2Collection^>(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: {0}{1}", scollection->Count, Environment::NewLine );
      System::Collections::IEnumerator^ myEnum = scollection->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
         X500DistinguishedName ^ dname = gcnew X500DistinguishedName( x509->SubjectName );
         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." );
   }

}
using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class X500Sample
{
    static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            X509Certificate2Collection fcollection = (X509Certificate2Collection)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: {0}{1}", scollection.Count, Environment.NewLine);
            foreach (X509Certificate2 x509 in scollection)
            {
                X500DistinguishedName dname = new X500DistinguishedName(x509.SubjectName);
                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
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates



Class X500Sample
   Shared 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 = CType(store.Certificates, X509Certificate2Collection)
         Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
         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)
     msg = "Number of certificates: " & scollection.Count & Environment.NewLine
     MsgBox(msg)
         Dim x509 As X509Certificate2
         For Each x509 In  scollection
            Dim dname As New X500DistinguishedName(x509.SubjectName)
        msg = "X500DistinguishedName: " & dname.Name & Environment.NewLine
     MsgBox(msg)
            x509.Reset()
         Next x509
         store.Close()
     Catch e As Exception
            msg = "Error: Information could not be written out for this certificate."
            MsgBox(msg)
      End Try
   End Sub
End Class

Comentários

Essa enumeração é usada com a X500DistinguishedName classe para indicar caracteres especiais contidos no nome diferenciado.

Vários valores são mutuamente exclusivos nesta enumeração; use apenas um desses valores para definir as características especiais de um nome diferenciado X.500. Por exemplo, especifique apenas um dos UseCommas``UseNewLines valores e UseSemicolons um. Você também especificaria um UseT61Encoding ou UseUTF8Encoding.

Aplica-se a