X509BasicConstraintsExtension Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce i vincoli impostati su un certificato. La classe non può essere ereditata.
public ref class X509BasicConstraintsExtension sealed : System::Security::Cryptography::X509Certificates::X509Extension
public sealed class X509BasicConstraintsExtension : System.Security.Cryptography.X509Certificates.X509Extension
type X509BasicConstraintsExtension = class
inherit X509Extension
Public NotInheritable Class X509BasicConstraintsExtension
Inherits X509Extension
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrato come aprire l'archivio certificati personale di un utente e visualizzare informazioni su ogni certificato nell'archivio. In questo esempio viene utilizzata la X509BasicConstraintsExtension classe per visualizzare le informazioni.
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
Commenti
Questa classe fornisce proprietà che definiscono i vincoli di base impostati su un certificato.
Costruttori
| Nome | Descrizione |
|---|---|
| X509BasicConstraintsExtension() |
Inizializza una nuova istanza della classe X509BasicConstraintsExtension. |
| X509BasicConstraintsExtension(AsnEncodedData, Boolean) |
Inizializza una nuova istanza della X509BasicConstraintsExtension classe utilizzando un AsnEncodedData oggetto e un valore che identifica se l'estensione è critica. |
| X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean) |
Inizializza una nuova istanza della classe X509BasicConstraintsExtension. I parametri specificano un valore che indica se un certificato è un certificato dell'autorità di certificazione (CA), un valore che indica se il certificato ha una restrizione sul numero di livelli di percorso consentiti, il numero di livelli consentiti nel percorso di un certificato e un valore che indica se l'estensione è critica. |
Proprietà
| Nome | Descrizione |
|---|---|
| CertificateAuthority |
Ottiene un valore che indica se un certificato è un certificato dell'autorità di certificazione (CA). |
| Critical |
Ottiene un valore booleano che indica se l'estensione è critica. (Ereditato da X509Extension) |
| HasPathLengthConstraint |
Ottiene un valore che indica se un certificato ha una restrizione sul numero di livelli di percorso consentiti. |
| Oid |
Ottiene o imposta il Oid valore di un AsnEncodedData oggetto . (Ereditato da AsnEncodedData) |
| PathLengthConstraint |
Ottiene il numero di livelli consentiti nel percorso di un certificato. |
| RawData |
Ottiene o imposta i dati con codifica ASN.1 (Abstract Syntax Notation One) rappresentati in una matrice di byte. (Ereditato da AsnEncodedData) |
Metodi
| Nome | Descrizione |
|---|---|
| CopyFrom(AsnEncodedData) |
Inizializza una nuova istanza della X509BasicConstraintsExtension classe utilizzando un AsnEncodedData oggetto . |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Format(Boolean) |
Restituisce una versione formattata dei dati con codifica ASN.1 (Abstract Syntax Notation One) come stringa. (Ereditato da AsnEncodedData) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |