語言

X509EnhancedKeyUsageExtension 類別

定義

定義了物件識別碼(OID)集合,指示使用該金鑰的應用程式。 此類別無法獲得繼承。

public ref class X509EnhancedKeyUsageExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509EnhancedKeyUsageExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509EnhancedKeyUsageExtension = class
    inherit X509Extension
Public NotInheritable Class X509EnhancedKeyUsageExtension
Inherits X509Extension
繼承
X509EnhancedKeyUsageExtension

範例

以下程式碼範例示範如何開啟使用者的個人憑證儲存庫,並顯示儲存中每個憑證的資訊。 此範例使用 類別 X509EnhancedKeyUsageExtension 來顯示資訊。

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class CertSelect
{
    public static void Main()
    {
        try
        {
            X509Store store = new X509Store("MY", StoreLocation.CurrentUser);
            store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
            for (int i = 0; i < collection.Count; i++)
            {
                foreach (X509Extension extension in collection[i].Extensions)
                {
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")");

                    if (extension.Oid.FriendlyName == "Key Usage")
                    {
                        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
                        Console.WriteLine(ext.KeyUsages);
                    }

                    if (extension.Oid.FriendlyName == "Basic Constraints")
                    {
                        X509BasicConstraintsExtension ext = (X509BasicConstraintsExtension)extension;
                        Console.WriteLine(ext.CertificateAuthority);
                        Console.WriteLine(ext.HasPathLengthConstraint);
                        Console.WriteLine(ext.PathLengthConstraint);
                    }

                    if (extension.Oid.FriendlyName == "Subject Key Identifier")
                    {
                        X509SubjectKeyIdentifierExtension ext = (X509SubjectKeyIdentifierExtension)extension;
                        Console.WriteLine(ext.SubjectKeyIdentifier);
                    }

                    if (extension.Oid.FriendlyName == "Enhanced Key Usage")
                    {
                        X509EnhancedKeyUsageExtension ext = (X509EnhancedKeyUsageExtension)extension;
                        OidCollection oids = ext.EnhancedKeyUsages;
                        foreach (Oid oid in oids)
                        {
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")");
                        }
                    }
                }
            }
            store.Close();
        }
        catch (CryptographicException)
        {
            Console.WriteLine("Information could not be written out for this certificate.");
        }
    }
}
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates



Module CertSelect

    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)
            For i As Integer = 0 To collection.Count - 1
                Dim extension As X509Extension
                For Each extension In collection(i).Extensions
                    Console.WriteLine(extension.Oid.FriendlyName + "(" + extension.Oid.Value + ")")


                    If extension.Oid.FriendlyName = "Key Usage" Then
                        Dim ext As X509KeyUsageExtension = CType(extension, X509KeyUsageExtension)
                        Console.WriteLine(ext.KeyUsages)
                    End If

                    If extension.Oid.FriendlyName = "Basic Constraints" Then
                        Dim ext As X509BasicConstraintsExtension = CType(extension, X509BasicConstraintsExtension)
                        Console.WriteLine(ext.CertificateAuthority)
                        Console.WriteLine(ext.HasPathLengthConstraint)
                        Console.WriteLine(ext.PathLengthConstraint)
                    End If

                    If extension.Oid.FriendlyName = "Subject Key Identifier" Then
                        Dim ext As X509SubjectKeyIdentifierExtension = CType(extension, X509SubjectKeyIdentifierExtension)
                        Console.WriteLine(ext.SubjectKeyIdentifier)
                    End If

                    If extension.Oid.FriendlyName = "Enhanced Key Usage" Then
                        Dim ext As X509EnhancedKeyUsageExtension = CType(extension, X509EnhancedKeyUsageExtension)
                        Dim oids As OidCollection = ext.EnhancedKeyUsages
                        Dim oid As Oid
                        For Each oid In oids
                            Console.WriteLine(oid.FriendlyName + "(" + oid.Value + ")")
                        Next oid
                    End If
                Next extension
            Next i
            store.Close()
        Catch
            Console.WriteLine("Information could not be written out for this certificate.")
        End Try

    End Sub
End Module

備註

增強金鑰使用方法 (EKU) 延伸模組是表示使用金鑰之應用程式的物件識別碼 (OID) 集合。

建構函式

名稱 Description
X509EnhancedKeyUsageExtension()

初始化 X509EnhancedKeyUsageExtension 類別的新執行個體。

X509EnhancedKeyUsageExtension(AsnEncodedData, Boolean)

使用X509EnhancedKeyUsageExtension物件及識別該擴充是否關鍵的值初始化類別的新實例AsnEncodedData。

X509EnhancedKeyUsageExtension(OidCollection, Boolean)

初始化一個新的類別實例 X509EnhancedKeyUsageExtension ,使用 OidCollection 一個值,以識別該擴充是否為關鍵。

屬性

名稱 Description
Critical

會得到一個布林值,表示該擴展是否關鍵。

(繼承來源 X509Extension)
EnhancedKeyUsages

取得一組物件識別碼(OID),用以指示使用該金鑰的應用程式。

Oid

取得或設定 Oid 物件 AsnEncodedData 的值。

(繼承來源 AsnEncodedData)
RawData
已淘汰.

取得或設定以位元組陣列表示的抽象語法符號 1(ASN.1)編碼資料。

(繼承來源 AsnEncodedData)

方法

名稱 Description
CopyFrom(AsnEncodedData)

使用X509EnhancedKeyUsageExtension物件初始化該類別的新實例AsnEncodedData。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Format(Boolean)

以字串形式回傳 Abstract Syntax Notation One (ASN.1) 編碼資料的格式化版本。

(繼承來源 AsnEncodedData)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type。

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於