Cette documentation est archivée et n’est pas conservée.

X509Store, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

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

Espace de noms : System.Security.Cryptography.X509Certificates
Assembly : System (dans system.dll)

public sealed class X509Store
public final class X509Store
public final class X509Store

Utilisez cette classe pour travailler avec un magasin X.509.

L'exemple de code suivant ouvre un magasin de certificats X.509, ajoute et supprime des certificats, puis ferme le magasin. Cela suppose que vous avez trois certificats à ajouter et à supprimer dans un magasin local.

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 ();
	}	
}

import System.*;
import System.Security.Cryptography.*;
import System.Security.Cryptography.X509Certificates.*;
import 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.get_Certificates();
        Console.WriteLine("Store name: {0}", store.get_Name());
        Console.WriteLine("Store location: {0}", store.get_Location());
        for (int iCtr = 0; iCtr < storecollection.get_Count(); iCtr++) {
            X509Certificate2 x509 = storecollection.get_Item(iCtr);
            Console.WriteLine("certificate name: {0}", x509.get_Subject());
        }
        //Remove a certificate.
        store.Remove(certificate1);
        X509Certificate2Collection storecollection2 = 
            (X509Certificate2Collection)store.get_Certificates();
        Console.WriteLine("{1}Store name: {0}", store.get_Name(),
            Environment.get_NewLine());
        for (int iCtr = 0; iCtr < storecollection2.get_Count(); iCtr++) {
            X509Certificate2 x509 = storecollection2.get_Item(iCtr);
            Console.WriteLine("certificate name: {0}", x509.get_Subject());
        }
        //Remove a range of certificates.
        store.RemoveRange(collection);
        X509Certificate2Collection storecollection3 =
            (X509Certificate2Collection)store.get_Certificates();
        Console.WriteLine("{1}Store name: {0}", store.get_Name(), 
            Environment.get_NewLine());
        if (storecollection3.get_Count() == 0) {
            Console.WriteLine("Store contains no certificates.");
        }
        else {
            for (int iCtr = 0; iCtr < storecollection3.get_Count(); iCtr++) {
                X509Certificate2 x509 = storecollection3.get_Item(iCtr);
                Console.WriteLine("certificate name: {0}", x509.get_Subject());
            }
        }
        //Close the store.
        store.Close();
    } //main
} //X509store2

System.Object
  System.Security.Cryptography.X509Certificates.X509Store

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0
Afficher: