X500DistinguishedNameFlags 列挙型

定義

X.500 の識別名の特性を指定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

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

フィールド

DoNotUsePlusSign 32

識別名で正符号 (+) が使用されていません。

DoNotUseQuotes 64

識別名で引用符が使用されていません。

ForceUTF8Encoding 16384

強制的に、識別名が印刷可能な Unicode 文字列ではなく、UTF-8 文字列を使用して、特定の X.500 キーをエンコードするようにします。 影響を受ける X.500 キーの詳細と一覧については、「X500NameFlags enumeration (X500NameFlags 列挙体)」をご覧ください。

None 0

識別名に特殊属性がありません。

Reversed 1

識別名は予約されています。

UseCommas 128

識別名でコンマが使用されています。

UseNewLines 256

識別名で改行文字が使用されています。

UseSemicolons 16

識別名でセミコロン (;) が使用されています。

UseT61Encoding 8192

識別名に T61 エンコーディングが使用されています。

UseUTF8Encoding 4096

識別名に、Unicode 文字エンコーディングではなく UTF8 エンコーディングが使用されています。

次のコード例は、列挙型の使用方法を X500DistinguishedNameFlags 示しています。

#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

注釈

この列挙型は、識別名に X500DistinguishedName 含まれる特殊文字を示すために、クラスと共に使用されます。

この列挙では、いくつかの値が相互に排他的です。X.500 識別名の特殊な特性を定義するには、これらの値のうち 1 つだけを使用します。 たとえば、,,とUseSemicolons値の UseCommas``UseNewLines 1 つだけを指定します。 また、いずれか UseT61Encoding または UseUTF8Encoding.

適用対象