Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

X509Certificate2UI Class

Displays user interface dialogs that allow you to select and view X.509 certificates. This class cannot be inherited.

System.Object
  System.Security.Cryptography.X509Certificates.X509Certificate2UI

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

'Declaration
<HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort := True)> _
Public NotInheritable Class X509Certificate2UI

  NameDescription
Public methodStatic memberDisplayCertificate(X509Certificate2)Displays a dialog box that contains the properties of an X.509 certificate and its associated certificate chain.
Public methodStatic memberDisplayCertificate(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.
Public methodStatic memberSelectFromCollection(X509Certificate2Collection, String, String, X509SelectionFlag)Displays a dialog box for selecting an X.509 certificate from a certificate collection.
Public methodStatic memberSelectFromCollection(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.
Top

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.

NoteNote

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.


Imports System
Imports System.Security.Cryptography
Imports System.Security.Permissions
Imports System.IO
Imports System.Security.Cryptography.X509Certificates



Class CertSelect

    Shared Sub Main()

            Dim store As New X509Store("MY", StoreLocation.CurrentUser)
            store.Open(OpenFlags.ReadOnly Or OpenFlags.OpenExistingOnly)
            Dim collection As X509Certificate2Collection = CType(store.Certificates, X509Certificate2Collection)
            Dim fcollection As X509Certificate2Collection = CType(collection.Find(X509FindType.FindByTimeValid, DateTime.Now, False), X509Certificate2Collection)
            Dim scollection As X509Certificate2Collection = 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)
            Dim x509 As X509Certificate2
            For Each x509 In scollection
              	Try
	                Dim rawdata As Byte() = 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()
             	End Try

             	Catch cExcept As CryptographicException
                 	Console.WriteLine("Information could not be written out for this certificate.")
            Next x509
            store.Close()

    End Sub
End Class


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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.

Community Additions

Show:
© 2017 Microsoft