X509Extension Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy X509Extension.

Przeciążenia

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.

X509Extension()

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
protected X509Extension();

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

Ten konstruktor tworzy pusty X509Extension obiekt, w przeciwieństwie do innych konstruktorów dla tej klasy, które używają informacji o certyfikacie z tablicy bajtów, wskaźnika lub pliku certyfikatu do utworzenia obiektu.

Dotyczy

.NET 10 i inne wersje
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

X509Extension(AsnEncodedData, Boolean)

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
public X509Extension(System.Security.Cryptography.AsnEncodedData encodedExtension, bool critical);

Parametry

encodedExtension
AsnEncodedData

Zakodowane dane do użycia w celu utworzenia rozszerzenia.

critical
Boolean

true jeśli rozszerzenie ma krytyczne znaczenie; w przeciwnym razie false.

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

Użyj tego konstruktora, jeśli informacje do utworzenia rozszerzenia są już w AsnEncodedData obiekcie.

Dotyczy

.NET 10 i inne wersje
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

X509Extension(Oid, Byte[], Boolean)

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
public X509Extension(System.Security.Cryptography.Oid oid, byte[] rawData, bool critical);

Parametry

oid
Oid

Identyfikator obiektu używany do identyfikowania rozszerzenia.

rawData
Byte[]

Zakodowane dane używane do tworzenia rozszerzenia.

critical
Boolean

true jeśli rozszerzenie ma krytyczne znaczenie; w przeciwnym razie false.

Wyjątki

oid to null.

oid jest pustym ciągiem ("").

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

Ten konstruktor używa informacji z parametru, oid aby podać identyfikator obiektu dla rozszerzenia.

Dotyczy

.NET 10 i inne wersje
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

X509Extension(Oid, ReadOnlySpan<Byte>, Boolean)

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
public X509Extension(System.Security.Cryptography.Oid oid, ReadOnlySpan<byte> rawData, bool critical);

Parametry

oid
Oid

Identyfikator obiektu używany do identyfikowania rozszerzenia.

rawData
ReadOnlySpan<Byte>

Zakodowane dane używane do tworzenia rozszerzenia.

critical
Boolean

true jeśli rozszerzenie ma krytyczne znaczenie; w przeciwnym razie , false.

Dotyczy

.NET 10 i inne wersje
Produkt Wersje
.NET 5, 6, 7, 8, 9, 10

X509Extension(String, Byte[], Boolean)

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
public X509Extension(string oid, byte[] rawData, bool critical);

Parametry

oid
String

Ciąg reprezentujący identyfikator obiektu.

rawData
Byte[]

Zakodowane dane używane do tworzenia rozszerzenia.

critical
Boolean

true jeśli rozszerzenie ma krytyczne znaczenie; w przeciwnym razie false.

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

Ten konstruktor używa informacji z parametru, oid aby podać identyfikator obiektu dla rozszerzenia.

Dotyczy

.NET 10 i inne wersje
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

X509Extension(String, ReadOnlySpan<Byte>, Boolean)

Źródło:
X509Extension.cs
Źródło:
X509Extension.cs
Źródło:
X509Extension.cs

Inicjuje nowe wystąpienie klasy X509Extension.

C#
public X509Extension(string oid, ReadOnlySpan<byte> rawData, bool critical);

Parametry

oid
String

Identyfikator obiektu używany do identyfikowania rozszerzenia.

rawData
ReadOnlySpan<Byte>

Zakodowane dane używane do tworzenia rozszerzenia.

critical
Boolean

true jeśli rozszerzenie ma krytyczne znaczenie; w przeciwnym razie , false.

Dotyczy

.NET 10 i inne wersje
Produkt Wersje
.NET 5, 6, 7, 8, 9, 10