X509Certificate2UI Class
Displays user interface dialogs that allow you to select and view X.509 certificates. This class cannot be inherited.
Namespace: System.Security.Cryptography.X509Certificates
Assembly: System.Security (in System.Security.dll)
| Name | Description | |
|---|---|---|
![]() ![]() | DisplayCertificate(X509Certificate2) | Displays a dialog box that contains the properties of an X.509 certificate and its associated certificate chain. |
![]() ![]() | DisplayCertificate(X509Certificate2, IntPtr) | Displays a dialog box that contains the properties of an X.509 certificate and its associated certificate chain using a handle to a parent window. |
![]() ![]() | SelectFromCollection(X509Certificate2Collection, String, String, X509SelectionFlag) | Displays a dialog box for selecting an X.509 certificate from a certificate collection. |
![]() ![]() | SelectFromCollection(X509Certificate2Collection, String, String, X509SelectionFlag, IntPtr) | Displays a dialog box for selecting an X.509 certificate from a certificate collection using a handle to a parent window. |
Use the methods of the X509Certificate2UI class to present user interface dialogs that display detailed information about an X.509 certificate or allow users to select one or more certificates from a collection of X.509 certificates.
Note |
|---|
The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: MayLeakOnAbort. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes. |
The following code example demonstrates how to display user interface dialogs to select and view X.509 certificates.
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(); } }
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.
