X509Store Classe

Définition

Représente un magasin X.509, magasin physique où les certificats sont conservés et gérés. Cette classe ne peut pas être héritée.

C#
public sealed class X509Store : IDisposable
C#
public sealed class X509Store
Héritage
X509Store
Implémente

Exemples

Cette section contient deux exemples. Le premier exemple montre comment ouvrir des magasins X.509 standard et répertorier le nombre de certificats dans chacun d’eux.

Le deuxième exemple montre comment ajouter et supprimer des certificats uniques et des plages de certificats.

Exemple 1

Cet exemple tente d’ouvrir chaque magasin standard à chaque emplacement standard sur l’ordinateur actuel. Il affiche un résumé qui indique si chaque magasin existe et, le cas échéant, le nombre de certificats qu’il contient.

L’exemple crée un X509Store objet pour chaque combinaison de nom standard et d’emplacement standard. Il appelle la Open méthode avec l’indicateur OpenFlags.OpenExistingOnly , qui ouvre le magasin physique uniquement s’il existe déjà. Si le magasin physique existe, l’exemple utilise les Namepropriétés , Locationet Certificates pour afficher le nombre de certificats dans le magasin.

C#
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class Example
{
    static void Main()
    {
        Console.WriteLine("\r\nExists Certs Name and Location");
        Console.WriteLine("------ ----- -------------------------");

        foreach (StoreLocation storeLocation in (StoreLocation[])
            Enum.GetValues(typeof(StoreLocation)))
        {
            foreach (StoreName storeName in (StoreName[])
                Enum.GetValues(typeof(StoreName)))
            {
                X509Store store = new X509Store(storeName, storeLocation);

                try
                {
                    store.Open(OpenFlags.OpenExistingOnly);

                    Console.WriteLine("Yes    {0,4}  {1}, {2}",
                        store.Certificates.Count, store.Name, store.Location);
                }
                catch (CryptographicException)
                {
                    Console.WriteLine("No           {0}, {1}",
                        store.Name, store.Location);
                }
            }
            Console.WriteLine();
        }
    }
}

/* This example produces output similar to the following:

Exists Certs Name and Location
------ ----- -------------------------
Yes       1  AddressBook, CurrentUser
Yes      25  AuthRoot, CurrentUser
Yes     136  CA, CurrentUser
Yes      55  Disallowed, CurrentUser
Yes      20  My, CurrentUser
Yes      36  Root, CurrentUser
Yes       0  TrustedPeople, CurrentUser
Yes       1  TrustedPublisher, CurrentUser

No           AddressBook, LocalMachine
Yes      25  AuthRoot, LocalMachine
Yes     131  CA, LocalMachine
Yes      55  Disallowed, LocalMachine
Yes       3  My, LocalMachine
Yes      36  Root, LocalMachine
Yes       0  TrustedPeople, LocalMachine
Yes       1  TrustedPublisher, LocalMachine

 */

Exemple 2

Cet exemple montre comment ouvrir un magasin de certificats X.509, ajouter et supprimer des certificats, puis fermer le magasin. Il suppose que vous avez trois certificats à ajouter et supprimer d’un magasin local.

C#
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.IO;

public class X509store2
{
    public static void Main (string[] args)
    {
        //Create new X509 store called teststore from the local certificate store.
        X509Store store = new X509Store ("teststore", StoreLocation.CurrentUser);
        store.Open (OpenFlags.ReadWrite);
        X509Certificate2 certificate = new X509Certificate2 ();

        //Create certificates from certificate files.
        //You must put in a valid path to three certificates in the following constructors.
        X509Certificate2 certificate1 = new X509Certificate2 ("c:\\mycerts\\*****.cer");
        X509Certificate2 certificate2 = new X509Certificate2 ("c:\\mycerts\\*****.cer");
        X509Certificate2 certificate5 = new X509Certificate2 ("c:\\mycerts\\*****.cer");

        //Create a collection and add two of the certificates.
        X509Certificate2Collection collection = new X509Certificate2Collection ();
        collection.Add (certificate2);
        collection.Add (certificate5);

        //Add certificates to the store.
        store.Add (certificate1);
        store.AddRange (collection);

        X509Certificate2Collection storecollection = (X509Certificate2Collection)store.Certificates;
        Console.WriteLine ("Store name: {0}", store.Name);
        Console.WriteLine ("Store location: {0}", store.Location);
        foreach (X509Certificate2 x509 in storecollection)
        {
            Console.WriteLine("certificate name: {0}",x509.Subject);
        }

        //Remove a certificate.
        store.Remove (certificate1);
        X509Certificate2Collection storecollection2 = (X509Certificate2Collection)store.Certificates;
        Console.WriteLine ("{1}Store name: {0}", store.Name, Environment.NewLine);
        foreach (X509Certificate2 x509 in storecollection2)
        {
            Console.WriteLine ("certificate name: {0}", x509.Subject);
        }

        //Remove a range of certificates.
        store.RemoveRange (collection);
        X509Certificate2Collection storecollection3 = (X509Certificate2Collection)store.Certificates;
        Console.WriteLine ("{1}Store name: {0}", store.Name, Environment.NewLine);
        if (storecollection3.Count == 0)
        {
            Console.WriteLine ("Store contains no certificates.");
        }
        else
        {
            foreach (X509Certificate2 x509 in storecollection3)
            {
                Console.WriteLine ("certificate name: {0}", x509.Subject);
            }
        }

        //Close the store.
        store.Close ();
    }	
}

Remarques

Utilisez cette classe pour utiliser un magasin X.509.

Important

À compter de .NET Framework 4.6, ce type implémente l’interface IDisposable . Une fois que vous avez fini d’utiliser le type, vous devez le supprimer directement ou indirectement. Pour supprimer directement le type Dispose, appelez sa méthode dans un bloc try/catch. Pour la supprimer indirectement, utilisez une construction de langage telle que using (dans C#) ou Using (dans Visual Basic). Pour plus d’informations, consultez la section « Utilisation d’un objet qui implémente IDisposable » dans la rubrique de l’interface IDisposable.

Pour les applications qui ciblent .NET Framework 4.5.2 et versions antérieures, la X509Store classe n’implémente pas l’interface IDisposable et n’a donc pas de Dispose méthode.

Constructeurs

X509Store()

Initialise une nouvelle instance de la classe X509Store à l’aide du magasin de certificats personnels de l’utilisateur actif.

X509Store(IntPtr)

Initialise une nouvelle instance de la classe X509Store en utilisant un handle Intptr vers un magasin HCERTSTORE.

X509Store(StoreLocation)

Initialise une nouvelle instance de la classe X509Store à l’aide du magasin de certificats personnels à partir de la valeur d’emplacement du magasin spécifiée.

X509Store(StoreName)

Initialise une nouvelle instance de la classe X509Store à l’aide du nom de magasin spécifié des magasins de certificats de l’utilisateur actif.

X509Store(StoreName, StoreLocation)

Initialise une nouvelle instance de la classe X509Store à l’aide des valeurs StoreName et StoreLocation spécifiées.

X509Store(StoreName, StoreLocation, OpenFlags)

Initialise une nouvelle instance de la classe X509Store à l’aide du nom de magasin et des valeurs d’emplacement de magasin spécifiés, puis l’ouvre en utilisant les indicateurs spécifiés.

X509Store(String)

Initialise une nouvelle instance de la classe X509Store avec le nom de magasin spécifié.

X509Store(String, StoreLocation)

Initialise une nouvelle instance de la classe X509Store à l’aide d’un nom de magasin et d’un emplacement de magasin spécifiés.

X509Store(String, StoreLocation, OpenFlags)

Initialise une nouvelle instance de la classe X509Store à l’aide du nom de magasin et des valeurs d’emplacement de magasin spécifiés, puis l’ouvre en utilisant les indicateurs spécifiés.

Propriétés

Certificates

Retourne une collection de certificats se trouvant dans un magasin de certificats X.509.

IsOpen

Obtient une valeur qui indique si l’instance est connectée à un magasin de certificats ouvert.

Location

Obtient l'emplacement du magasin de certificats X.509.

Name

Obtient le nom du magasin de certificats X.509.

StoreHandle

Obtient un handle IntPtr pour un magasin HCERTSTORE.

Méthodes

Add(X509Certificate2)

Ajoute un certificat à un magasin de certificats X.509.

AddRange(X509Certificate2Collection)

Ajoute une collection de certificats à un magasin de certificats X.509.

Close()

Ferme un magasin de certificats X.509.

Dispose()

Libère les ressources utilisées par ce X509Store.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Open(OpenFlags)

Ouvre un magasin de certificats X.509 ou crée un magasin, selon les valeurs des indicateurs OpenFlags.

Remove(X509Certificate2)

Supprime un certificat d'un magasin de certificats X.509.

RemoveRange(X509Certificate2Collection)

Supprime une plage de certificats d'un magasin de certificats X.509.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Produit Versions
.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