X509BasicConstraintsExtension Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define las restricciones establecidas en un certificado. Esta clase no puede heredarse.
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
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra cómo abrir el almacén de certificados personal de un usuario y mostrar información sobre cada certificado del almacén. En este ejemplo se usa la X509BasicConstraintsExtension clase para mostrar la información.
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
Comentarios
Esta clase proporciona propiedades que definen las restricciones básicas establecidas en un certificado.
Constructores
| Nombre | Description |
|---|---|
| X509BasicConstraintsExtension() |
Inicializa una nueva instancia de la clase X509BasicConstraintsExtension. |
| X509BasicConstraintsExtension(AsnEncodedData, Boolean) |
Inicializa una nueva instancia de la X509BasicConstraintsExtension clase utilizando un AsnEncodedData objeto y un valor que identifica si la extensión es crítica. |
| X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean) |
Inicializa una nueva instancia de la clase X509BasicConstraintsExtension. Los parámetros especifican un valor que indica si un certificado es un certificado de entidad de certificación (CA), un valor que indica si el certificado tiene una restricción en el número de niveles de ruta de acceso que permite, el número de niveles permitidos en la ruta de acceso de un certificado y un valor que indica si la extensión es crítica. |
Propiedades
| Nombre | Description |
|---|---|
| CertificateAuthority |
Obtiene un valor que indica si un certificado es un certificado de entidad de certificación (CA). |
| Critical |
Obtiene un valor booleano que indica si la extensión es crítica. (Heredado de X509Extension) |
| HasPathLengthConstraint |
Obtiene un valor que indica si un certificado tiene una restricción en el número de niveles de ruta de acceso que permite. |
| Oid |
Obtiene o establece el Oid valor de un AsnEncodedData objeto . (Heredado de AsnEncodedData) |
| PathLengthConstraint |
Obtiene el número de niveles permitidos en la ruta de acceso de un certificado. |
| RawData |
Obtiene o establece los datos codificados en notación de sintaxis abstracta uno (ASN.1) representados en una matriz de bytes. (Heredado de AsnEncodedData) |
Métodos
| Nombre | Description |
|---|---|
| CopyFrom(AsnEncodedData) |
Inicializa una nueva instancia de la X509BasicConstraintsExtension clase mediante un AsnEncodedData objeto . |
| CreateForCertificateAuthority(Nullable<Int32>) |
Crea una instancia de adecuada para una entidad de X509BasicConstraintsExtension certificación, que opcionalmente incluye un valor de restricción de longitud de ruta de acceso. |
| CreateForEndEntity(Boolean) |
Crea una instancia de X509BasicConstraintsExtension adecuada para un certificado de entidad final, lo que opcionalmente marca la extensión como crítica. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| Format(Boolean) |
Devuelve una versión con formato de los datos codificados en notación de sintaxis abstracta uno (ASN.1) como una cadena. (Heredado de AsnEncodedData) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |