X509Certificate2 Constructor (IntPtr)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Initializes a new instance of the X509Certificate2 class using an unmanaged handle.

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

public X509Certificate2(
	IntPtr handle


Type: System.IntPtr

A pointer to a certificate context in unmanaged code. The C structure is called PCCERT_CONTEXT.

Exception Condition

An error with the certificate occurs. For example:

  • The certificate file does not exist.

  • The certificate is invalid.

  • The certificate's password is incorrect.

This constructor creates a new X509Certificate2 object using a handle for the Microsoft Cryptographic API certificate context, PCCERT_CONTEXT. Note that the immediate caller of this constructor requires unmanaged code permission.


The constructor creates a copy of the certificate context. Do not assume that the context structure you passed to the constructor is valid; it may have been released. You can get a copy of the current PCCERT_CONTEXT structure from the Handle property, but it is valid only during the lifetime of the X509Certificate2 object.


for accessing unmanaged code. Security action: LinkDemand. Associated enumeration: SecurityPermissionFlag.UnmanagedCode


for accessing unmanaged code. Security action: InheritanceDemand. Associated enumeration: SecurityPermissionFlag.UnmanagedCode

.NET Framework
Available since 2.0
Return to top