X509BasicConstraintsExtension.HasPathLengthConstraint Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob für ein Zertifikat eine Beschränkung der Anzahl zulässiger Pfadebenen vorhanden ist.

public bool HasPathLengthConstraint { get; }

Eigenschaftswert

true, wenn für das Zertifikat eine Beschränkung der Anzahl zulässiger Pfadebenen vorhanden ist, andernfalls false.

Ausnahmen

Die Erweiterung kann nicht decodiert werden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie der persönliche Zertifikatspeicher eines Benutzers geöffnet und Informationen zu den einzelnen Zertifikaten im Speicher angezeigt werden. In diesem Beispiel wird die X509BasicConstraintsExtension -Klasse verwendet, um die Informationen anzuzeigen.

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

Hinweise

Ein Zertifikataussteller kann die Anzahl der Ebenen in einem Zertifikatpfad einschränken. Diese Eigenschaft gibt an, ob das Zertifikat über diese Einschränkung verfügt. Wenn dieser Wert ist true, können Sie die PathLengthConstraint -Eigenschaft verwenden, um die Anzahl der zulässigen Ebenen zu bestimmen.

Gilt für:

Produkt Versionen
.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
.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