X509BasicConstraintsExtension Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir sertifikada ayarlanan kısıtlamaları tanımlar. Bu sınıf devralınamaz.
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
- Devralma
Örnekler
Aşağıdaki kod örneği, kullanıcının kişisel sertifika depounu açmayı ve depodaki her sertifikayla ilgili bilgileri görüntülemeyi gösterir. Bu örnek, bilgileri görüntülemek için sınıfını kullanır X509BasicConstraintsExtension .
#using <System.dll>
#using <system.security.dll>
using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
try
{
X509Store^ store = gcnew X509Store( L"MY",StoreLocation::CurrentUser );
store->Open( static_cast<OpenFlags>(OpenFlags::ReadOnly | OpenFlags::OpenExistingOnly) );
X509Certificate2Collection^ collection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
for ( int i = 0; i < collection->Count; i++ )
{
System::Collections::IEnumerator^ myEnum = collection[ i ]->Extensions->GetEnumerator();
while ( myEnum->MoveNext() )
{
X509Extension^ extension = safe_cast<X509Extension^>(myEnum->Current);
Console::WriteLine( L"{0}({1})", extension->Oid->FriendlyName, extension->Oid->Value );
if ( extension->Oid->FriendlyName == L"Key Usage" )
{
X509KeyUsageExtension^ ext = dynamic_cast<X509KeyUsageExtension^>(extension);
Console::WriteLine( ext->KeyUsages );
}
if ( extension->Oid->FriendlyName == L"Basic Constraints" )
{
X509BasicConstraintsExtension^ ext = dynamic_cast<X509BasicConstraintsExtension^>(extension);
Console::WriteLine( ext->CertificateAuthority );
Console::WriteLine( ext->HasPathLengthConstraint );
Console::WriteLine( ext->PathLengthConstraint );
}
if ( extension->Oid->FriendlyName == L"Subject Key Identifier" )
{
X509SubjectKeyIdentifierExtension^ ext = dynamic_cast<X509SubjectKeyIdentifierExtension^>(extension);
Console::WriteLine( ext->SubjectKeyIdentifier );
}
if ( extension->Oid->FriendlyName == L"Enhanced Key Usage" )
{
X509EnhancedKeyUsageExtension^ ext = dynamic_cast<X509EnhancedKeyUsageExtension^>(extension);
OidCollection^ oids = ext->EnhancedKeyUsages;
System::Collections::IEnumerator^ myEnum1 = oids->GetEnumerator();
while ( myEnum1->MoveNext() )
{
Oid^ oid = safe_cast<Oid^>(myEnum1->Current);
Console::WriteLine( L"{0}({1})", oid->FriendlyName, oid->Value );
}
}
}
}
store->Close();
}
catch ( CryptographicException^ )
{
Console::WriteLine( L"Information could not be written out for this certificate." );
}
}
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
Açıklamalar
Bu sınıf, bir sertifikada ayarlanan temel kısıtlamaları tanımlayan özellikler sağlar.
Oluşturucular
X509BasicConstraintsExtension() |
X509BasicConstraintsExtension sınıfının yeni bir örneğini başlatır. |
X509BasicConstraintsExtension(AsnEncodedData, Boolean) |
Bir nesnesi ve uzantının X509BasicConstraintsExtension kritik olup olmadığını tanımlayan bir değer kullanarak AsnEncodedData sınıfının yeni bir örneğini başlatır. |
X509BasicConstraintsExtension(Boolean, Boolean, Int32, Boolean) |
X509BasicConstraintsExtension sınıfının yeni bir örneğini başlatır. Parametreler, sertifikanın bir sertifika yetkilisi (CA) sertifikası olup olmadığını belirten bir değer, sertifikanın izin verdiği yol düzeylerinin sayısı, sertifika yolunda izin verilen düzey sayısı ve uzantının kritik olup olmadığını belirten bir kısıtlaması olup olmadığını belirten bir değer belirtir. |
Özellikler
CertificateAuthority |
Sertifikanın bir sertifika yetkilisi (CA) sertifikası olup olmadığını belirten bir değer alır. |
Critical |
Uzantının kritik olup olmadığını belirten bir Boole değeri alır. (Devralındığı yer: X509Extension) |
HasPathLengthConstraint |
Bir sertifikanın izin verdiği yol düzeylerinin sayısı üzerinde kısıtlaması olup olmadığını belirten bir değer alır. |
Oid |
Bir AsnEncodedData nesnenin Oid değerini alır veya ayarlar. (Devralındığı yer: AsnEncodedData) |
PathLengthConstraint |
Sertifika yolunda izin verilen düzey sayısını alır. |
RawData |
Bir bayt dizisinde temsil edilen Soyut Söz Dizimi Gösterimi Bir (ASN.1) ile kodlanmış verileri alır veya ayarlar. (Devralındığı yer: AsnEncodedData) |
Yöntemler
CopyFrom(AsnEncodedData) |
Nesnesini kullanarak sınıfının yeni bir AsnEncodedData örneğini X509BasicConstraintsExtension başlatır. |
CreateForCertificateAuthority(Nullable<Int32>) |
İsteğe bağlı olarak yol uzunluğu kısıtlama değeri de dahil olmak üzere bir sertifika yetkilisi için uygun bir örneği X509BasicConstraintsExtension oluşturur. |
CreateForEndEntity(Boolean) |
İsteğe bağlı olarak uzantıyı X509BasicConstraintsExtension kritik olarak işaretleyerek bir son varlık sertifikası için uygun bir örneği oluşturur. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
Format(Boolean) |
Soyut Söz Dizimi Gösterimi Bir (ASN.1) ile kodlanmış verilerin biçimlendirilmiş bir sürümünü dize olarak döndürür. (Devralındığı yer: AsnEncodedData) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |