X509Extension Klasa

Definicja

Reprezentuje rozszerzenie X509.

C#
public class X509Extension : System.Security.Cryptography.AsnEncodedData
Dziedziczenie
X509Extension
Pochodne

Przykłady

W poniższym przykładzie X509Extension kodu pokazano użycie klasy .

C#
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.");
        }
    }
}

Uwagi

Rozszerzenia X509 są dynamiczne, rozszerzone właściwości, które można dodać do certyfikatu X509 i zmienić. Klasa X509Extension może służyć do tworzenia rozszerzeń skojarzonych z certyfikatem, ale nie są częścią certyfikatu wystawionego przez urząd certyfikacji (CA).

W najbardziej podstawowej formie rozszerzenie X509 ma identyfikator obiektu (OID), wartość logiczną opisującą, czy rozszerzenie jest uznawane za krytyczne, czy nie, oraz dane zakodowane w formacie ASN. Rozszerzenia niestandardowe można zarejestrować w CryptoConfig pliku.

The.NET Framework zawiera implementacje kilku typowych rozszerzeń X509:

Konstruktory

X509Extension()

Inicjuje nowe wystąpienie klasy X509Extension.

X509Extension(AsnEncodedData, Boolean)

Inicjuje nowe wystąpienie klasy X509Extension.

X509Extension(Oid, Byte[], Boolean)

Inicjuje nowe wystąpienie klasy X509Extension.

X509Extension(Oid, ReadOnlySpan<Byte>, Boolean)

Inicjuje nowe wystąpienie klasy X509Extension.

X509Extension(String, Byte[], Boolean)

Inicjuje nowe wystąpienie klasy X509Extension.

X509Extension(String, ReadOnlySpan<Byte>, Boolean)

Inicjuje nowe wystąpienie klasy X509Extension.

Właściwości

Critical

Pobiera wartość logiczną wskazującą, czy rozszerzenie ma krytyczne znaczenie.

Oid

Pobiera lub ustawia Oid wartość obiektu AsnEncodedData .

(Odziedziczone po AsnEncodedData)
RawData

Pobiera lub ustawia dane zakodowane w postaci składni abstrakcyjnej (ASN.1) zakodowane w tablicy bajtów.

(Odziedziczone po AsnEncodedData)

Metody

CopyFrom(AsnEncodedData)

Kopiuje właściwości rozszerzenia określonego AsnEncodedData obiektu.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Format(Boolean)

Zwraca sformatowaną wersję danych zakodowanych w składni abstrakcyjnej (ASN.1) jako ciąg.

(Odziedziczone po AsnEncodedData)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1