CertificateCollection Class
Provides methods and properties for accessing collections of Certificate objects.
Inheritance Hierarchy

Namespace: MailBee.Security
Assembly: MailBee.NET (in MailBee.NET.dll) Version: 12.4 build 677 for .NET 4.5
Syntax
public class CertificateCollection : CollectionBase

The CertificateCollection type exposes the following members.

Constructors
  NameDescription
Public methodCertificateCollection
Initializes a new instance of the CertificateCollection class
Top
Methods
  NameDescription
Public methodAdd
Adds the specified certificate to the collection.
Public methodClear
Removes all objects from the CollectionBase instance. This method cannot be overridden.
(Inherited from CollectionBase.)
Public methodCode exampleContains
Checks whether the specified certificate is contained in the collection or not.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodStatic memberFromX509Certificate2Collection
Initializes CertificateCollection from the existing X509Certificate2Collection.
Public methodGetEnumerator
Returns an enumerator that iterates through the CollectionBase instance.
(Inherited from CollectionBase.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodOnClear
Performs additional custom processes when clearing the contents of the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnClearComplete
Performs additional custom processes after clearing the contents of the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnInsert
Performs additional custom processes before inserting a new element into the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnInsertComplete
Performs additional custom processes after inserting a new element into the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnRemove
Performs additional custom processes when removing an element from the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnRemoveComplete
Performs additional custom processes after removing an element from the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnSet
Performs additional custom processes before setting a value in the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnSetComplete
Performs additional custom processes after setting a value in the CollectionBase instance.
(Inherited from CollectionBase.)
Protected methodOnValidate
Performs additional custom processes when validating a value.
(Inherited from CollectionBase.)
Public methodRemove(String)
Removes the certificate with the specified name of the entity this certificate was issued to.
Public methodCode exampleRemove(Certificate)
Removes the specified Certificate from the collection.
Public methodRemoveAt
Removes the element at the specified index of the CollectionBase instance. This method is not overridable.
(Inherited from CollectionBase.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodToX509Certificate2Collection
Initializes X509Certificate2Collection from the current CertificateCollection.
Top
Properties
  NameDescription
Public propertyCapacity
Gets or sets the number of elements that the CollectionBase can contain.
(Inherited from CollectionBase.)
Public propertyCount
Gets the number of elements contained in the CollectionBase instance. This property cannot be overridden.
(Inherited from CollectionBase.)
Protected propertyInnerList
Gets an ArrayList containing the list of elements in the CollectionBase instance.
(Inherited from CollectionBase.)
Public propertyCode exampleItemInt32
Gets the certificate at the specified zero-based index.
Public propertyItemString
Gets the certificate by the name of the principal to which this certificate was issued.
Protected propertyList
Gets an IList containing the list of elements in the CollectionBase instance.
(Inherited from CollectionBase.)
Top
Remarks

CertificateCollection class represents a group of Certificate objects in MailBee.

On other hand, CertificateStore class represents a group of certificates which exists on operating system level (for instance, certain certificate stores can be used by S/MIME functions to validate certificates) and has certain physical location: file store, system (Windows registry) store, memory store, etc. A certificate store, being an operating system level object, can be persistent and available to other applications while CertificateCollection is only used by those functions of MailBee which can accept or return values containing multiple Certificate objects.

The contents of a certificate store can be represented as CertificateCollection though. You can use CertificateStore.FindCertificates or CertificateStore.GetAllCertificates methods for this.

Note Note
Starting from .NET Standard 2.0 edition (e.g. .NET Core 2.0 and newer), it's recommended to use system-provided X509Certificate2 and X509Certificate2Collection classes directly. The only case when you'll need Certificate or CertificateCollection is calling SignAndEncrypt(MailMessage, Certificate, CertificateCollection) method. You can use Certificate(X509Certificate2) and FromX509Certificate2Collection(X509Certificate2Collection) methods to wrap X509Certificate2 and X509Certificate2Collection objects with their MailBee counterparts.
Examples
This sample opens "CA" system certificate store, finds all the certificates issued by Microsoft, creates a new certificate store, adds all the found certificates to this store and saves the store to disk as a file. The sample demonstrates using both CertificateCollection and CertificateStore classes.
// To use the code below, import MailBee namespace at the top of your code
using MailBee.Security;

CertificateStore store = new CertificateStore(CertificateStore.IntermediateCA, CertStoreType.System, null);
CertificateCollection coll = store.FindCertificates("Microsoft", CertificateFields.Issuer);
store = new CertificateStore(null, CertStoreType.Memory, null);
store.AddCertificates(coll, true);
store.SaveToFile(@"C:\Temp\microsoft_certificates.sst", CertStoreFileType.Sst, null);
See Also