X509BasicConstraintsExtension 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 X509BasicConstraintsExtension 類別的新執行個體。
多載
| 名稱 | Description |
|---|---|
| X509BasicConstraintsExtension() |
初始化 X509BasicConstraintsExtension 類別的新執行個體。 |
| X509BasicConstraintsExtension(AsnEncodedData, Boolean) |
使用X509BasicConstraintsExtension物件及識別該擴充是否關鍵的值初始化類別的新實例AsnEncodedData。 |
| X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean) |
初始化 X509BasicConstraintsExtension 類別的新執行個體。 參數指定一個值,表示憑證是否為憑證授權中心(CA)憑證;一個值,表示憑證是否限制允許的路徑層級數量、憑證路徑允許的層級數;以及一個表示擴充是否關鍵的值。 |
X509BasicConstraintsExtension()
初始化 X509BasicConstraintsExtension 類別的新執行個體。
public:
X509BasicConstraintsExtension();
public X509BasicConstraintsExtension();
Public Sub New ()
範例
以下程式碼範例示範如何開啟使用者的個人憑證儲存庫,並顯示儲存中每個憑證的資訊。 此範例使用 類別 X509BasicConstraintsExtension 來顯示資訊。
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
適用於
X509BasicConstraintsExtension(AsnEncodedData, Boolean)
使用X509BasicConstraintsExtension物件及識別該擴充是否關鍵的值初始化類別的新實例AsnEncodedData。
public:
X509BasicConstraintsExtension(System::Security::Cryptography::AsnEncodedData ^ encodedBasicConstraints, bool critical);
public X509BasicConstraintsExtension(System.Security.Cryptography.AsnEncodedData encodedBasicConstraints, bool critical);
new System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension : System.Security.Cryptography.AsnEncodedData * bool -> System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension
Public Sub New (encodedBasicConstraints As AsnEncodedData, critical As Boolean)
參數
- encodedBasicConstraints
- AsnEncodedData
用來建立擴充功能的編碼資料。
- critical
- Boolean
true如果該延伸是臨界的;否則,。 false
備註
如果建立擴充的資訊已經在物件中 AsnEncodedData ,請使用此建構器。
適用於
X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean)
初始化 X509BasicConstraintsExtension 類別的新執行個體。 參數指定一個值,表示憑證是否為憑證授權中心(CA)憑證;一個值,表示憑證是否限制允許的路徑層級數量、憑證路徑允許的層級數;以及一個表示擴充是否關鍵的值。
public:
X509BasicConstraintsExtension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint, bool critical);
public X509BasicConstraintsExtension(bool certificateAuthority, bool hasPathLengthConstraint, int pathLengthConstraint, bool critical);
new System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension : bool * bool * int * bool -> System.Security.Cryptography.X509Certificates.X509BasicConstraintsExtension
Public Sub New (certificateAuthority As Boolean, hasPathLengthConstraint As Boolean, pathLengthConstraint As Integer, critical As Boolean)
參數
- certificateAuthority
- Boolean
true若該證書為證書授權中心(CA)證書;否則,。 false
- hasPathLengthConstraint
- Boolean
true如果憑證對允許的路徑層級數量有限制;否則,。 false
- pathLengthConstraint
- Int32
證書路徑允許的等級數。
- critical
- Boolean
true如果該延伸是臨界的;否則,。 false