Export (0) Print
Expand All

X509Certificate2Collection Class

Represents a collection of X509Certificate2 objects. This class cannot be inherited.

System.Object
  System.Collections.CollectionBase
    System.Security.Cryptography.X509Certificates.X509CertificateCollection
      System.Security.Cryptography.X509Certificates.X509Certificate2Collection

Namespace:  System.Security.Cryptography.X509Certificates
Assembly:  System (in System.dll)

public class X509Certificate2Collection : X509CertificateCollection

The X509Certificate2Collection type exposes the following members.

  NameDescription
Public methodX509Certificate2Collection()Initializes a new instance of the X509Certificate2Collection class without any X509Certificate2 information.
Public methodX509Certificate2Collection(X509Certificate2)Initializes a new instance of the X509Certificate2Collection class using an X509Certificate2 object.
Public methodX509Certificate2Collection(X509Certificate2[])Initializes a new instance of the X509Certificate2Collection class using an array of X509Certificate2 objects.
Public methodX509Certificate2Collection(X509Certificate2Collection)Initializes a new instance of the X509Certificate2Collection class using the specified certificate collection.
Top

  NameDescription
Public propertyCapacityGets or sets the number of elements that the CollectionBase can contain. (Inherited from CollectionBase.)
Public propertyCountGets the number of elements contained in the CollectionBase instance. This property cannot be overridden. (Inherited from CollectionBase.)
Protected propertyInnerListGets an ArrayList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.)
Public propertyItemGets or sets the element at the specified index.
Protected propertyListGets an IList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.)
Top

  NameDescription
Public methodAdd(X509Certificate)Adds an X509Certificate with the specified value to the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodAdd(X509Certificate2)Adds an object to the end of the X509Certificate2Collection.
Public methodAddRange(X509Certificate[])Copies the elements of an array of type X509Certificate to the end of the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodAddRange(X509Certificate2[])Adds multiple X509Certificate2 objects in an array to the X509Certificate2Collection object.
Public methodAddRange(X509Certificate2Collection)Adds multiple X509Certificate2 objects in an X509Certificate2Collection object to another X509Certificate2Collection object.
Public methodAddRange(X509CertificateCollection)Copies the elements of the specified X509CertificateCollection to the end of the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodClearRemoves all objects from the CollectionBase instance. This method cannot be overridden. (Inherited from CollectionBase.)
Public methodContains(X509Certificate)Gets a value indicating whether the current X509CertificateCollection contains the specified X509Certificate. (Inherited from X509CertificateCollection.)
Public methodContains(X509Certificate2)Determines whether the X509Certificate2Collection object contains a specific certificate.
Public methodCopyToCopies the X509Certificate values in the current X509CertificateCollection to a one-dimensional Array instance at the specified index. (Inherited from X509CertificateCollection.)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public methodExport(X509ContentType)Exports X.509 certificate information into a byte array.
Public methodExport(X509ContentType, String)Exports X.509 certificate information into a byte array using a password.
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodFindSearches an X509Certificate2Collection object using the search criteria specified by the X509FindType enumeration and the findValue object.
Public methodGetEnumeratorReturns an enumerator that can iterate through a X509Certificate2Collection object.
Public methodGetHashCodeBuilds a hash value based on all values contained in the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodImport(Byte[])Imports a certificate in the form of a byte array into a X509Certificate2Collection object.
Public methodImport(String)Imports a certificate file into a X509Certificate2Collection object.
Public methodImport(Byte[], String, X509KeyStorageFlags)Imports a certificate, in the form of a byte array that requires a password to access the certificate, into a X509Certificate2Collection object.
Public methodImport(String, String, X509KeyStorageFlags)Imports a certificate file that requires a password into a X509Certificate2Collection object.
Public methodIndexOfReturns the index of the specified X509Certificate in the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodInsert(Int32, X509Certificate2)Inserts an object into the X509Certificate2Collection object at the specified index.
Public methodInsert(Int32, X509Certificate)Inserts a X509Certificate into the current X509CertificateCollection at the specified index. (Inherited from X509CertificateCollection.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnClearPerforms additional custom processes when clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnClearCompletePerforms additional custom processes after clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnInsertPerforms additional custom processes before inserting a new element into the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnInsertCompletePerforms additional custom processes after inserting a new element into the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnRemovePerforms additional custom processes when removing an element from the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnRemoveCompletePerforms additional custom processes after removing an element from the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnSetPerforms additional custom processes before setting a value in the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnSetCompletePerforms additional custom processes after setting a value in the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnValidatePerforms additional custom processes when validating a value. (Inherited from CollectionBase.)
Public methodRemove(X509Certificate)Removes a specific X509Certificate from the current X509CertificateCollection. (Inherited from X509CertificateCollection.)
Public methodRemove(X509Certificate2)Removes the first occurrence of a certificate from the X509Certificate2Collection object.
Public methodRemoveAtRemoves the element at the specified index of the CollectionBase instance. This method is not overridable. (Inherited from CollectionBase.)
Public methodRemoveRange(X509Certificate2[])Removes multiple X509Certificate2 objects in an array from an X509Certificate2Collection object.
Public methodRemoveRange(X509Certificate2Collection)Removes multiple X509Certificate2 objects in an X509Certificate2Collection object from another X509Certificate2Collection object.
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Explicit interface implemetationPrivate methodICollection.CopyToCopies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyICollection.IsSynchronizedGets a value indicating whether access to the CollectionBase is synchronized (thread safe). (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyICollection.SyncRootGets an object that can be used to synchronize access to the CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.AddAdds an object to the end of the CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.ContainsDetermines whether the CollectionBase contains a specific element. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.IndexOfSearches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.InsertInserts an element into the CollectionBase at the specified index. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.IsFixedSizeGets a value indicating whether the CollectionBase has a fixed size. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.IsReadOnlyGets a value indicating whether the CollectionBase is read-only. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.ItemGets or sets the element at the specified index. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.RemoveRemoves the first occurrence of a specific object from the CollectionBase. (Inherited from CollectionBase.)
Top

When an X509Certificate2 store is opened, the result is represented by an X509Certificate2Collection object. If you are familiar with the unmanaged Cryptographic API constructs, you can think of an X509Certificate2Collection as a memory store of X509Certificate2 objects.

The following code example opens the current user's personal certificate store, selects only valid certificates, allows the user to select a certificate, and then writes certificate and certificate chain information to the console. The output depends on the certificate the user selects.

using System;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.IO;
using System.Security.Cryptography.X509Certificates;

class CertSelect
{
    static void Main()
    {
        X509Store store = new X509Store("MY",StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

        X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
        X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByTimeValid,DateTime.Now,false);
        X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Test Certificate Select","Select a certificate from the following list to get information on that certificate",X509SelectionFlag.MultiSelection);
        Console.WriteLine("Number of certificates: {0}{1}",scollection.Count,Environment.NewLine);

        foreach (X509Certificate2 x509 in scollection)
        {
            try
            {
                byte[] rawdata = x509.RawData;
                Console.WriteLine("Content Type: {0}{1}",X509Certificate2.GetCertContentType(rawdata),Environment.NewLine);
                Console.WriteLine("Friendly Name: {0}{1}",x509.FriendlyName,Environment.NewLine);
                Console.WriteLine("Certificate Verified?: {0}{1}",x509.Verify(),Environment.NewLine);
                Console.WriteLine("Simple Name: {0}{1}",x509.GetNameInfo(X509NameType.SimpleName,true),Environment.NewLine);
                Console.WriteLine("Signature Algorithm: {0}{1}",x509.SignatureAlgorithm.FriendlyName,Environment.NewLine);
                Console.WriteLine("Private Key: {0}{1}",x509.PrivateKey.ToXmlString(false),Environment.NewLine);
                Console.WriteLine("Public Key: {0}{1}",x509.PublicKey.Key.ToXmlString(false),Environment.NewLine);
                Console.WriteLine("Certificate Archived?: {0}{1}",x509.Archived,Environment.NewLine);
                Console.WriteLine("Length of Raw Data: {0}{1}",x509.RawData.Length,Environment.NewLine);
                X509Certificate2UI.DisplayCertificate(x509);
                x509.Reset();
            }
            catch (CryptographicException)
            {
                Console.WriteLine("Information could not be written out for this certificate.");
            }
        }
        store.Close();
    }
}

.NET Framework

Supported in: 4.6, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft