AsnEncodedDataCollection Class

 

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

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

System.Object
  System.Security.Cryptography.AsnEncodedDataCollection

public sealed class AsnEncodedDataCollection : ICollection, IEnumerable

NameDescription
System_CAPS_pubmethodAsnEncodedDataCollection()

Initializes a new instance of the AsnEncodedDataCollection class.

System_CAPS_pubmethodAsnEncodedDataCollection(AsnEncodedData)

Initializes a new instance of the AsnEncodedDataCollection class and adds an AsnEncodedData object to the collection.

NameDescription
System_CAPS_pubpropertyCount

Gets the number of AsnEncodedData objects in a collection.

System_CAPS_pubpropertyIsSynchronized

Gets a value that indicates whether access to the AsnEncodedDataCollection object is thread safe.

System_CAPS_pubpropertyItem[Int32]

Gets an AsnEncodedData object from the AsnEncodedDataCollection object.

System_CAPS_pubpropertySyncRoot

Gets an object that can be used to synchronize access to the AsnEncodedDataCollection object.

NameDescription
System_CAPS_pubmethodAdd(AsnEncodedData)

Adds an AsnEncodedData object to the AsnEncodedDataCollection object.

System_CAPS_pubmethodCopyTo(AsnEncodedData[], Int32)

Copies the AsnEncodedDataCollection object into an array.

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetEnumerator()

Returns an AsnEncodedDataEnumerator object that can be used to navigate the AsnEncodedDataCollection object.

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodRemove(AsnEncodedData)

Removes an AsnEncodedData object from the AsnEncodedDataCollection object.

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Copies the AsnEncodedDataCollection object into an array.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Returns an AsnEncodedDataEnumerator object that can be used to navigate the AsnEncodedDataCollection object.

NameDescription
System_CAPS_pubmethodAsParallel()

Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Overloaded. Converts an IEnumerable to an IQueryable.(Defined by Queryable.)

System_CAPS_pubmethodCast<TResult>()

Casts the elements of an IEnumerable to the specified type.(Defined by Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filters the elements of an IEnumerable based on a specified type.(Defined by Enumerable.)

This class implements the ICollection interface.

The following code example shows how to use the AsnEncodedDataCollection class.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

class AsnEncodedDataSample
{
	static void Main()
	{		
		//The following example demonstrates the usage the AsnEncodedData classes.
		// Asn encoded data is read from the extensions of an X509 certificate.
		try
		{
			// Open the certificate store.
			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);
			// Select one or more certificates to display extensions information.
			X509Certificate2Collection scollection = X509Certificate2UI.SelectFromCollection(fcollection, "Certificate Select", "Select certificates from the following list to get extension information on that certificate", X509SelectionFlag.MultiSelection);

			// Create a new AsnEncodedDataCollection object.
			AsnEncodedDataCollection asncoll = new AsnEncodedDataCollection();
			for (int i = 0; i < scollection.Count; i++)
			{
				// Display certificate information.
				Console.ForegroundColor = ConsoleColor.Red;
				Console.WriteLine("Certificate name: {0}", scollection[i].GetName());
				Console.ResetColor();
				// Display extensions information.
				foreach (X509Extension extension in scollection[i].Extensions)
				{
					// Create an AsnEncodedData object using the extensions information.
					AsnEncodedData asndata = new AsnEncodedData(extension.Oid, extension.RawData);
					Console.ForegroundColor = ConsoleColor.Green;
					Console.WriteLine("Extension type: {0}", extension.Oid.FriendlyName);
					Console.WriteLine("Oid value: {0}",asndata.Oid.Value);
					Console.WriteLine("Raw data length: {0} {1}", asndata.RawData.Length, Environment.NewLine);
					Console.ResetColor();
					Console.WriteLine(asndata.Format(true));
					Console.WriteLine(Environment.NewLine);
					// Add the AsnEncodedData object to the AsnEncodedDataCollection object.
					asncoll.Add(asndata);
				}
				Console.WriteLine(Environment.NewLine);
			}
			Console.ForegroundColor = ConsoleColor.Red;
			Console.WriteLine("Number of AsnEncodedData items in the collection: {0} {1}", asncoll.Count, Environment.NewLine);
			Console.ResetColor();

			store.Close();
			//Create an enumerator for moving through the collection.
			AsnEncodedDataEnumerator asne = asncoll.GetEnumerator();
			//You must execute a MoveNext() to get to the first item in the collection.
			asne.MoveNext();
			// Write out AsnEncodedData in the collection.
			Console.ForegroundColor = ConsoleColor.Blue;
			Console.WriteLine("First AsnEncodedData in the collection: {0}", asne.Current.Format(true));
			Console.ResetColor();

			asne.MoveNext();
			Console.ForegroundColor = ConsoleColor.DarkBlue;
			Console.WriteLine("Second AsnEncodedData in the collection: {0}", asne.Current.Format(true));
			Console.ResetColor();
			//Return index in the collection to the beginning.
			asne.Reset();
		}
		catch (CryptographicException)
		{
			Console.WriteLine("Information could not be written out for this certificate.");
		}
	}
}

.NET Framework
Available since 2.0

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

Return to top
Show: