X509Store X509Store X509Store X509Store Constructors

Definition

Overloads

X509Store() X509Store() X509Store()

Initializes a new instance of the X509Store class using the personal certificates of the current user store.

X509Store(IntPtr) X509Store(IntPtr) X509Store(IntPtr) X509Store(IntPtr)

Initializes a new instance of the X509Store class using an Intptr handle to an HCERTSTORE store.

X509Store(StoreLocation) X509Store(StoreLocation) X509Store(StoreLocation)

Initializes a new instance of the X509Store class using the specified StoreLocation value.

X509Store(StoreName) X509Store(StoreName) X509Store(StoreName)

Initializes a new instance of the X509Store class using the specified StoreName value.

X509Store(String) X509Store(String) X509Store(String) X509Store(String)

Initializes a new instance of the X509Store class using the specified store name.

X509Store(StoreName, StoreLocation) X509Store(StoreName, StoreLocation) X509Store(StoreName, StoreLocation)

Initializes a new instance of the X509Store class using the specified StoreName and StoreLocation values.

X509Store(String, StoreLocation) X509Store(String, StoreLocation) X509Store(String, StoreLocation)

Initializes a new instance of the X509Store class using a string that represents a value from the StoreName enumeration and a value from the StoreLocation enumeration.

X509Store(StoreName, StoreLocation, OpenFlags) X509Store(StoreName, StoreLocation, OpenFlags) X509Store(StoreName, StoreLocation, OpenFlags)
X509Store(String, StoreLocation, OpenFlags) X509Store(String, StoreLocation, OpenFlags) X509Store(String, StoreLocation, OpenFlags)

X509Store() X509Store() X509Store()

Initializes a new instance of the X509Store class using the personal certificates of the current user store.

public:
 X509Store();
public X509Store ();
Public Sub New ()

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X509Store object using the personal X.509 certificate store for the current user.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(IntPtr) X509Store(IntPtr) X509Store(IntPtr) X509Store(IntPtr)

Initializes a new instance of the X509Store class using an Intptr handle to an HCERTSTORE store.

public:
 X509Store(IntPtr storeHandle);
public X509Store (IntPtr storeHandle);
new System.Security.Cryptography.X509Certificates.X509Store : nativeint -> System.Security.Cryptography.X509Certificates.X509Store
Public Sub New (storeHandle As IntPtr)

Parameters

storeHandle
IntPtr IntPtr IntPtr IntPtr

A handle to an HCERTSTORE store.

Exceptions

The storeHandle parameter points to an invalid context.

Remarks

Use this constructor to provide compatibility with the unmanaged Microsoft Cryptographic API (CAPI).

For more information about the HCERTSTORE handle, see the unmanaged CAPI documentation in the Platform SDK section of the MSDN Library.

Security

SecurityPermission
for unmanaged code. Security action: InheritanceDemand. Associated enumeration: UnmanagedCode

X509Store(StoreLocation) X509Store(StoreLocation) X509Store(StoreLocation)

Initializes a new instance of the X509Store class using the specified StoreLocation value.

public:
 X509Store(System::Security::Cryptography::X509Certificates::StoreLocation storeLocation);
public X509Store (System.Security.Cryptography.X509Certificates.StoreLocation storeLocation);
new System.Security.Cryptography.X509Certificates.X509Store : System.Security.Cryptography.X509Certificates.StoreLocation -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

storeLocation
StoreLocation StoreLocation StoreLocation StoreLocation

One of the enumeration values that specifies the location of the X.509 certificate store.

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X509Store object, specifying the store location, which is either the location for the current user or the local computer.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(StoreName) X509Store(StoreName) X509Store(StoreName)

Initializes a new instance of the X509Store class using the specified StoreName value.

public:
 X509Store(System::Security::Cryptography::X509Certificates::StoreName storeName);
public X509Store (System.Security.Cryptography.X509Certificates.StoreName storeName);
new System.Security.Cryptography.X509Certificates.X509Store : System.Security.Cryptography.X509Certificates.StoreName -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

storeName
StoreName StoreName StoreName StoreName

One of the enumeration values that specifies the name of the X.509 certificate store.

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X.509 store for the current user that corresponds to values enumerated by StoreName.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(String) X509Store(String) X509Store(String) X509Store(String)

Initializes a new instance of the X509Store class using the specified store name.

public:
 X509Store(System::String ^ storeName);
public X509Store (string storeName);
new System.Security.Cryptography.X509Certificates.X509Store : string -> System.Security.Cryptography.X509Certificates.X509Store
Public Sub New (storeName As String)

Parameters

storeName
String String String String

A string value that represents the store name. See StoreName for more information.

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X509Store object using a particular X.509 store name for the current user. To create a new store, specify a name that does not exist. A new store will be created with that name.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(StoreName, StoreLocation) X509Store(StoreName, StoreLocation) X509Store(StoreName, StoreLocation)

Initializes a new instance of the X509Store class using the specified StoreName and StoreLocation values.

public:
 X509Store(System::Security::Cryptography::X509Certificates::StoreName storeName, System::Security::Cryptography::X509Certificates::StoreLocation storeLocation);
public X509Store (System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation);
new System.Security.Cryptography.X509Certificates.X509Store : System.Security.Cryptography.X509Certificates.StoreName * System.Security.Cryptography.X509Certificates.StoreLocation -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

storeName
StoreName StoreName StoreName StoreName

One of the enumeration values that specifies the name of the X.509 certificate store.

storeLocation
StoreLocation StoreLocation StoreLocation StoreLocation

One of the enumeration values that specifies the location of the X.509 certificate store.

Exceptions

storeLocation is not a valid location or storeName is not a valid name.

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X509Store object, specifying both the store name and the store location.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(String, StoreLocation) X509Store(String, StoreLocation) X509Store(String, StoreLocation)

Initializes a new instance of the X509Store class using a string that represents a value from the StoreName enumeration and a value from the StoreLocation enumeration.

public:
 X509Store(System::String ^ storeName, System::Security::Cryptography::X509Certificates::StoreLocation storeLocation);
public X509Store (string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation);
new System.Security.Cryptography.X509Certificates.X509Store : string * System.Security.Cryptography.X509Certificates.StoreLocation -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

storeName
String String String String

A string that represents a value from the StoreName enumeration.

storeLocation
StoreLocation StoreLocation StoreLocation StoreLocation

One of the enumeration values that specifies the location of the X.509 certificate store.

Exceptions

Examples

The following code example opens an X.509 certificate store, adds and deletes certificates, and then closes the store. It assumes that you have three certificates to add to and remove from a local store.

#using <System.dll>
#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Security::Cryptography::X509Certificates;
using namespace System::IO;
int main()
{
   
   //Create new X509 store called teststore from the local certificate store.
   X509Store ^ store = gcnew X509Store( "teststore",StoreLocation::CurrentUser );
   store->Open( OpenFlags::ReadWrite );
   X509Certificate2 ^ certificate = gcnew X509Certificate2;
   
   //Create certificates from certificate files.
   //You must put in a valid path to three certificates in the following constructors.
   X509Certificate2 ^ certificate1 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate2 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   X509Certificate2 ^ certificate5 = gcnew X509Certificate2( "c:\\mycerts\\*****.cer" );
   
   //Create a collection and add two of the certificates.
   X509Certificate2Collection ^ collection = gcnew X509Certificate2Collection;
   collection->Add( certificate2 );
   collection->Add( certificate5 );
   
   //Add certificates to the store.
   store->Add( certificate1 );
   store->AddRange( collection );
   X509Certificate2Collection ^ storecollection = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "Store name: {0}", store->Name );
   Console::WriteLine( "Store location: {0}", store->Location );
   System::Collections::IEnumerator^ myEnum = storecollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a certificate.
   store->Remove( certificate1 );
   X509Certificate2Collection ^ storecollection2 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   System::Collections::IEnumerator^ myEnum1 = storecollection2->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum1->Current);
      Console::WriteLine( "certificate name: {0}", x509->Subject );
   }

   
   //Remove a range of certificates.
   store->RemoveRange( collection );
   X509Certificate2Collection ^ storecollection3 = dynamic_cast<X509Certificate2Collection^>(store->Certificates);
   Console::WriteLine( "{1}Store name: {0}", store->Name, Environment::NewLine );
   if ( storecollection3->Count == 0 )
   {
      Console::WriteLine( "Store contains no certificates." );
   }
   else
   {
      System::Collections::IEnumerator^ myEnum2 = storecollection3->GetEnumerator();
      while ( myEnum2->MoveNext() )
      {
         X509Certificate2 ^ x509 = safe_cast<X509Certificate2 ^>(myEnum2->Current);
         Console::WriteLine( "certificate name: {0}", x509->Subject );
      }
   }

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

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 ();
	}	
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports System.IO



Class X509store2

    Shared Sub Main(ByVal args() As String)
        'Create new X509 store called teststore from the local certificate store.
        Dim store As New X509Store("teststore", StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadWrite)
        Dim certificate As New X509Certificate2()

        'Create certificates from certificate files.
        'You must put in a valid path to three certificates in the following constructors.
        Dim certificate1 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate2 As New X509Certificate2("c:\mycerts\*****.cer")
        Dim certificate5 As New X509Certificate2("c:\mycerts\*****.cer")

        'Create a collection and add two of the certificates.
        Dim collection As New X509Certificate2Collection()
        collection.Add(certificate2)
        collection.Add(certificate5)

        'Add certificates to the store.
        store.Add(certificate1)
        store.AddRange(collection)

        Dim storecollection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("Store name: {0}", store.Name)
        Console.WriteLine("Store location: {0}", store.Location)
        Dim x509 As X509Certificate2
        For Each x509 In storecollection
            Console.WriteLine("certificate name: {0}", x509.Subject)
        Next x509

        'Remove a certificate.
        store.Remove(certificate1)
        Dim storecollection2 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        Dim x509a As X509Certificate2
        For Each x509a In storecollection2
            Console.WriteLine("certificate name: {0}", x509a.Subject)
        Next x509a

        'Remove a range of certificates.
        store.RemoveRange(collection)
        Dim storecollection3 As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
        Console.WriteLine("{1}Store name: {0}", store.Name, Environment.NewLine)
        If storecollection3.Count = 0 Then
            Console.WriteLine("Store contains no certificates.")
        Else
            Dim x509b As X509Certificate2
            For Each x509b In storecollection3
                Console.WriteLine("certificate name: {0}", x509b.Subject)
            Next x509b
        End If

        'Close the store.
        store.Close()

    End Sub
End Class

Remarks

Use this constructor to create an X509Store object using a store name and location. To create a new store, specify a name that does not exist. A new store will be created with that name.

Security

StorePermission
for opening an X.509 certificate store. Security action: Demand. Associated enumerations: OpenStore, EnumerateCertificates

X509Store(StoreName, StoreLocation, OpenFlags) X509Store(StoreName, StoreLocation, OpenFlags) X509Store(StoreName, StoreLocation, OpenFlags)

public:
 X509Store(System::Security::Cryptography::X509Certificates::StoreName storeName, System::Security::Cryptography::X509Certificates::StoreLocation storeLocation, System::Security::Cryptography::X509Certificates::OpenFlags flags);
public X509Store (System.Security.Cryptography.X509Certificates.StoreName storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.OpenFlags flags);
new System.Security.Cryptography.X509Certificates.X509Store : System.Security.Cryptography.X509Certificates.StoreName * System.Security.Cryptography.X509Certificates.StoreLocation * System.Security.Cryptography.X509Certificates.OpenFlags -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

X509Store(String, StoreLocation, OpenFlags) X509Store(String, StoreLocation, OpenFlags) X509Store(String, StoreLocation, OpenFlags)

public:
 X509Store(System::String ^ storeName, System::Security::Cryptography::X509Certificates::StoreLocation storeLocation, System::Security::Cryptography::X509Certificates::OpenFlags flags);
public X509Store (string storeName, System.Security.Cryptography.X509Certificates.StoreLocation storeLocation, System.Security.Cryptography.X509Certificates.OpenFlags flags);
new System.Security.Cryptography.X509Certificates.X509Store : string * System.Security.Cryptography.X509Certificates.StoreLocation * System.Security.Cryptography.X509Certificates.OpenFlags -> System.Security.Cryptography.X509Certificates.X509Store

Parameters

Applies to