X509Certificate 构造函数

定义

初始化 X509Certificate 类的新实例。

重载

X509Certificate()
已过时。

初始化 X509Certificate 类的新实例。

X509Certificate(String, SecureString, X509KeyStorageFlags)

使用一个证书文件名、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

X509Certificate(Byte[], String, X509KeyStorageFlags)

使用一个字节数组、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

X509Certificate(Byte[], SecureString, X509KeyStorageFlags)

使用一个字节数组、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

X509Certificate(String, String)

使用 PKCS7 签名文件的名称和一个用于访问该证书的密码初始化 X509Certificate 类的新实例。

X509Certificate(String, SecureString)

使用一个证书文件名和一个密码初始化 X509Certificate 类的新实例。

X509Certificate(SerializationInfo, StreamingContext)

使用一个 X509Certificate 对象和一个 SerializationInfo 结构初始化 StreamingContext 类的一个新实例。

X509Certificate(String, String, X509KeyStorageFlags)

使用 PKCS7 签名文件的名称、一个用于访问该证书的密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

X509Certificate(Byte[], SecureString)

使用一个字节数组和一个密码初始化 X509Certificate 类的新实例。

X509Certificate(String)

使用 PKCS7 签名文件的名称初始化 X509Certificate 类的新实例。

X509Certificate(X509Certificate)

使用另一个 X509Certificate 类初始化 X509Certificate 类的一个新实例。

X509Certificate(IntPtr)

使用非托管 PCCERT_CONTEXT 结构的句柄初始化 X509Certificate 类的一个新实例。

X509Certificate(Byte[])

初始化从表示 X.509v3 证书的字节序列定义的 X509Certificate 类的新实例。

X509Certificate(Byte[], String)

使用一个字节数组和一个密码初始化 X509Certificate 类的新实例。

X509Certificate()

注意

X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.

初始化 X509Certificate 类的新实例。

public:
 X509Certificate();
public X509Certificate ();
[System.Obsolete("X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId="SYSLIB0026", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public X509Certificate ();
[System.Obsolete("X509Certificate and X509Certificate2 are immutable. Use the appropriate constructor to create a new certificate.", DiagnosticId="SYSLIB0026", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate ();
Public Sub New ()
属性

注解

ASN.1 DER 是此类支持的唯一证书格式。

适用于

X509Certificate(String, SecureString, X509KeyStorageFlags)

重要

此 API 不符合 CLS。

使用一个证书文件名、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

public:
 X509Certificate(System::String ^ fileName, System::Security::SecureString ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public X509Certificate (string fileName, System.Security.SecureString? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (string fileName, System.Security.SecureString? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public X509Certificate (string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
public X509Certificate (string fileName, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[<System.CLSCompliant(false)>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (fileName As String, password As SecureString, keyStorageFlags As X509KeyStorageFlags)

参数

fileName
String

一个证书文件的名称。

password
SecureString

访问 X.509 证书数据所需的密码。

keyStorageFlags
X509KeyStorageFlags

一个枚举值的按位组合,这些值控制在何处以及如何导入证书。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

fileName 参数为 null

注解

如果 X509Certificate 通过指定 PKCS7 签名文件存储 fileName来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(Byte[], String, X509KeyStorageFlags)

使用一个字节数组、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

public:
 X509Certificate(cli::array <System::Byte> ^ rawData, System::String ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public X509Certificate (byte[] rawData, string? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (byte[] rawData, string? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
public X509Certificate (byte[] rawData, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (rawData As Byte(), password As String, keyStorageFlags As X509KeyStorageFlags)

参数

rawData
Byte[]

一个包含 X.509 证书数据的字节数组。

password
String

访问 X.509 证书数据所需的密码。

keyStorageFlags
X509KeyStorageFlags

一个枚举值的按位组合,这些值控制在何处以及如何导入证书。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

rawData 参数为 null

  • 或 - rawData 参数的长度为 0。

注解

此构造函数使用字节数组、访问证书数据和密钥存储标志所需的密码创建新 X509Certificate 对象。 使用正确的密码调用此构造函数会解密私钥,并将其保存到 Microsoft 加密 API 加密服务提供程序 (CSP) 。

X509KeyStorageFlags该值可用于控制私钥的导入位置和方式。

ASN.1 DER 是此类支持的唯一证书格式。

重要

从不对源代码中的密码进行硬编码。 可以使用 Ildasm.exe (IL 反汇编程序) 、十六进制编辑器或直接在文本编辑器(如 Notepad.exe)中打开程序集,从程序集中检索硬编码的密码。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 rawData来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(Byte[], SecureString, X509KeyStorageFlags)

重要

此 API 不符合 CLS。

使用一个字节数组、一个密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

public:
 X509Certificate(cli::array <System::Byte> ^ rawData, System::Security::SecureString ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public X509Certificate (byte[] rawData, System.Security.SecureString? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (byte[] rawData, System.Security.SecureString? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.CLSCompliant(false)]
public X509Certificate (byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
public X509Certificate (byte[] rawData, System.Security.SecureString password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[<System.CLSCompliant(false)>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (rawData As Byte(), password As SecureString, keyStorageFlags As X509KeyStorageFlags)

参数

rawData
Byte[]

包含 X.509 证书数据的字节数组。

password
SecureString

访问 X.509 证书数据所需的密码。

keyStorageFlags
X509KeyStorageFlags

一个枚举值的按位组合,这些值控制在何处以及如何导入证书。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

rawData 参数为 null

  • 或 - rawData 参数的长度为 0。

注解

使用正确的密码调用此构造函数会解密私钥,并将其保存到 Microsoft 加密 API 加密服务提供程序 (CSP) 。

ASN.1 DER 是此类支持的唯一证书格式。

重要

从不对源代码中的密码进行硬编码。 可以使用 Ildasm.exe (IL 反汇编程序) 、十六进制编辑器或直接在文本编辑器(如 Notepad.exe)中打开程序集,从程序集中检索硬编码的密码。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 rawData来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(String, String)

使用 PKCS7 签名文件的名称和一个用于访问该证书的密码初始化 X509Certificate 类的新实例。

public:
 X509Certificate(System::String ^ fileName, System::String ^ password);
public X509Certificate (string fileName, string? password);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (string fileName, string? password);
public X509Certificate (string fileName, string password);
new System.Security.Cryptography.X509Certificates.X509Certificate : string * string -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * string -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (fileName As String, password As String)

参数

fileName
String

PKCS7 签名文件的名称。

password
String

访问 X.509 证书数据所需的密码。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

fileName 参数为 null

注解

ASN.1 DER 是此类支持的唯一证书格式。 使用正确的密码调用此构造函数会解密私钥,并将其保存到密钥容器。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 fileName来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(String, SecureString)

重要

此 API 不符合 CLS。

使用一个证书文件名和一个密码初始化 X509Certificate 类的新实例。

public:
 X509Certificate(System::String ^ fileName, System::Security::SecureString ^ password);
[System.CLSCompliant(false)]
public X509Certificate (string fileName, System.Security.SecureString? password);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (string fileName, System.Security.SecureString? password);
[System.CLSCompliant(false)]
public X509Certificate (string fileName, System.Security.SecureString password);
public X509Certificate (string fileName, System.Security.SecureString password);
[<System.CLSCompliant(false)>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
new System.Security.Cryptography.X509Certificates.X509Certificate : string * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (fileName As String, password As SecureString)

参数

fileName
String

一个证书文件的名称。

password
SecureString

访问 X.509 证书数据所需的密码。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

fileName 参数为 null

注解

ASN.1 DER 是此类支持的唯一证书格式。 使用正确的密码调用此构造函数会解密私钥,并将其保存到密钥容器。

重要

从不对源代码中的密码进行硬编码。 可以使用 Ildasm.exe (IL 反汇编程序) 、十六进制编辑器或直接在文本编辑器(如 Notepad.exe)中打开程序集,从程序集中检索硬编码的密码。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 fileName来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(SerializationInfo, StreamingContext)

使用一个 X509Certificate 对象和一个 SerializationInfo 结构初始化 StreamingContext 类的一个新实例。

public:
 X509Certificate(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
public X509Certificate (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Security.Cryptography.X509Certificates.X509Certificate : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (info As SerializationInfo, context As StreamingContext)

参数

info
SerializationInfo

一个描述序列化信息的 SerializationInfo 对象。

context
StreamingContext

一个描述如何执行序列化的 StreamingContext 结构。

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

适用于

X509Certificate(String, String, X509KeyStorageFlags)

使用 PKCS7 签名文件的名称、一个用于访问该证书的密码和一个密钥存储标志初始化 X509Certificate 类的新实例。

public:
 X509Certificate(System::String ^ fileName, System::String ^ password, System::Security::Cryptography::X509Certificates::X509KeyStorageFlags keyStorageFlags);
public X509Certificate (string fileName, string? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (string fileName, string? password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
public X509Certificate (string fileName, string password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags keyStorageFlags);
new System.Security.Cryptography.X509Certificates.X509Certificate : string * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string * string * System.Security.Cryptography.X509Certificates.X509KeyStorageFlags -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (fileName As String, password As String, keyStorageFlags As X509KeyStorageFlags)

参数

fileName
String

PKCS7 签名文件的名称。

password
String

访问 X.509 证书数据所需的密码。

keyStorageFlags
X509KeyStorageFlags

一个枚举值的按位组合,这些值控制在何处以及如何导入证书。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

fileName 参数为 null

注解

如果 X509Certificate 通过指定 PKCS7 签名文件存储 fileName来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(Byte[], SecureString)

重要

此 API 不符合 CLS。

使用一个字节数组和一个密码初始化 X509Certificate 类的新实例。

public:
 X509Certificate(cli::array <System::Byte> ^ rawData, System::Security::SecureString ^ password);
[System.CLSCompliant(false)]
public X509Certificate (byte[] rawData, System.Security.SecureString? password);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (byte[] rawData, System.Security.SecureString? password);
[System.CLSCompliant(false)]
public X509Certificate (byte[] rawData, System.Security.SecureString password);
public X509Certificate (byte[] rawData, System.Security.SecureString password);
[<System.CLSCompliant(false)>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * System.Security.SecureString -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (rawData As Byte(), password As SecureString)

参数

rawData
Byte[]

包含 X.509 证书数据的字节数组。

password
SecureString

访问 X.509 证书数据所需的密码。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

rawData 参数为 null

  • 或 - rawData 参数的长度为 0。

注解

ASN.1 DER 是此类支持的唯一证书格式。

重要

从不对源代码中的密码进行硬编码。 可以使用 Ildasm.exe (IL 反汇编程序) 、十六进制编辑器或直接在文本编辑器(如 Notepad.exe)中打开程序集,从程序集中检索硬编码的密码。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 rawData来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(String)

使用 PKCS7 签名文件的名称初始化 X509Certificate 类的新实例。

public:
 X509Certificate(System::String ^ fileName);
public X509Certificate (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (string fileName);
new System.Security.Cryptography.X509Certificates.X509Certificate : string -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : string -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (fileName As String)

参数

fileName
String

PKCS7 签名文件的名称。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

fileName 参数为 null

示例

以下示例从文件加载 X.509 证书,调用 ToString 该方法,并向控制台显示结果。

using namespace System;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   
   // The path to the certificate.
   String^ Certificate = L"Certificate.cer";
   
   // Load the certificate into an X509Certificate object.
   X509Certificate^ cert = gcnew X509Certificate( Certificate );
   
   // Get the value.
   String^ resultsTrue = cert->ToString( true );
   
   // Display the value to the console.
   Console::WriteLine( resultsTrue );
   
   // Get the value.
   String^ resultsFalse = cert->ToString( false );
   
   // Display the value to the console.
   Console::WriteLine( resultsFalse );
}
using System;
using System.Security.Cryptography.X509Certificates;

public class X509
{

    public static void Main()
    {

        // The path to the certificate.
        string Certificate = "Certificate.cer";

        // Load the certificate into an X509Certificate object.
        X509Certificate cert = new X509Certificate(Certificate);

        // Get the value.
        string resultsTrue = cert.ToString(true);

        // Display the value to the console.
        Console.WriteLine(resultsTrue);

        // Get the value.
        string resultsFalse = cert.ToString(false);

        // Display the value to the console.
        Console.WriteLine(resultsFalse);
    }
}
Imports System.Security.Cryptography.X509Certificates

Module X509

    Sub Main()

        ' The path to the certificate.
        Dim Certificate As String = "Certificate.cer"

        ' Load the certificate into an X509Certificate object.
        Dim cert As New X509Certificate(Certificate)

        ' Get the value.
        Dim resultsTrue As String = cert.ToString(True)

        ' Display the value to the console.
        Console.WriteLine(resultsTrue)

        ' Get the value.
        Dim resultsFalse As String = cert.ToString(False)

        ' Display the value to the console.
        Console.WriteLine(resultsFalse)

    End Sub
End Module

注解

ASN.1 DER 是此类支持的唯一证书格式。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 fileName来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(X509Certificate)

使用另一个 X509Certificate 类初始化 X509Certificate 类的一个新实例。

public:
 X509Certificate(System::Security::Cryptography::X509Certificates::X509Certificate ^ cert);
public X509Certificate (System.Security.Cryptography.X509Certificates.X509Certificate cert);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (System.Security.Cryptography.X509Certificates.X509Certificate cert);
new System.Security.Cryptography.X509Certificates.X509Certificate : System.Security.Cryptography.X509Certificates.X509Certificate -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : System.Security.Cryptography.X509Certificates.X509Certificate -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (cert As X509Certificate)

参数

cert
X509Certificate

从中初始化此类的 X509Certificate 类。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

cert 参数的值为 null

注解

ASN.1 DER 是此类支持的唯一证书格式。

适用于

X509Certificate(IntPtr)

使用非托管 PCCERT_CONTEXT 结构的句柄初始化 X509Certificate 类的一个新实例。

public:
 X509Certificate(IntPtr handle);
public X509Certificate (IntPtr handle);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (IntPtr handle);
[System.Security.SecurityCritical]
public X509Certificate (IntPtr handle);
new System.Security.Cryptography.X509Certificates.X509Certificate : nativeint -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : nativeint -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Security.SecurityCritical>]
new System.Security.Cryptography.X509Certificates.X509Certificate : nativeint -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (handle As IntPtr)

参数

handle
IntPtr

nativeint

非托管 PCCERT_CONTEXT 结构的一个句柄。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

句柄参数未表示有效的 PCCERT_CONTEXT 结构。

注解

此构造函数使用 Microsoft 加密 API 证书上下文PCCERT_CONTEXT的句柄创建新X509Certificate对象。

重要

此构造函数创建证书上下文的副本。 不要假定传递给构造函数的上下文结构有效;它可能已发布。 可以从属性获取当前 PCCERT_CONTEXT 结构 Handle 的副本,但仅在对象的生存期内 X509Certificate 有效。

适用于

X509Certificate(Byte[])

初始化从表示 X.509v3 证书的字节序列定义的 X509Certificate 类的新实例。

public:
 X509Certificate(cli::array <System::Byte> ^ data);
public X509Certificate (byte[] data);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (byte[] data);
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (data As Byte())

参数

data
Byte[]

一个包含 X.509 证书数据的字节数组。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

rawData 参数为 null

  • 或 - rawData 参数的长度为 0。

示例

以下示例将 X.509 证书文件加载到对象 X509Certificate 中,将证书导出为字节数组,然后将字节数组导入另一个 X509Certificate 对象。

using namespace System;
using namespace System::Security::Cryptography::X509Certificates;
int main()
{
   
   // The path to the certificate.
   String^ Certificate = L"test.pfx";
   
   // Load the certificate into an X509Certificate object.
   X509Certificate^ cert = gcnew X509Certificate( Certificate );
   array<Byte>^certData = cert->Export( X509ContentType::Cert );
   X509Certificate^ newCert = gcnew X509Certificate( certData );
   
   // Get the value.
   String^ resultsTrue = newCert->ToString( true );
   
   // Display the value to the console.
   Console::WriteLine( resultsTrue );
   
   // Get the value.
   String^ resultsFalse = newCert->ToString( false );
   
   // Display the value to the console.
   Console::WriteLine( resultsFalse );
}
using System;
using System.Security.Cryptography.X509Certificates;

public class X509
{

    public static void Main()
    {

        // The path to the certificate.
        string Certificate = "test.pfx";

        // Load the certificate into an X509Certificate object.
        X509Certificate cert = new X509Certificate(Certificate);

        byte[] certData = cert.Export(X509ContentType.Cert);

        X509Certificate newCert = new X509Certificate(certData);

        // Get the value.
        string resultsTrue = newCert.ToString(true);

        // Display the value to the console.
        Console.WriteLine(resultsTrue);

        // Get the value.
        string resultsFalse = newCert.ToString(false);

        // Display the value to the console.
        Console.WriteLine(resultsFalse);
    }
}
Imports System.Security.Cryptography.X509Certificates


Module X509

    Sub Main()

        ' The path to the certificate.
        Dim Certificate As String = "test.pfx"

        ' Load the certificate into an X509Certificate object.
        Dim cert As New X509Certificate(Certificate)


        Dim certData As Byte() = cert.Export(X509ContentType.Cert)

        Dim newCert As New X509Certificate(certData)

        ' Get the value.
        Dim resultsTrue As String = newCert.ToString(True)

        ' Display the value to the console.
        Console.WriteLine(resultsTrue)

        ' Get the value.
        Dim resultsFalse As String = newCert.ToString(False)

        ' Display the value to the console.
        Console.WriteLine(resultsFalse)

    End Sub
End Module

注解

ASN.1 DER 是此类支持的唯一证书格式。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 data来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于

X509Certificate(Byte[], String)

使用一个字节数组和一个密码初始化 X509Certificate 类的新实例。

public:
 X509Certificate(cli::array <System::Byte> ^ rawData, System::String ^ password);
public X509Certificate (byte[] rawData, string? password);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public X509Certificate (byte[] rawData, string? password);
public X509Certificate (byte[] rawData, string password);
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * string -> System.Security.Cryptography.X509Certificates.X509Certificate
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
new System.Security.Cryptography.X509Certificates.X509Certificate : byte[] * string -> System.Security.Cryptography.X509Certificates.X509Certificate
Public Sub New (rawData As Byte(), password As String)

参数

rawData
Byte[]

一个包含 X.509 证书数据的字节数组。

password
String

访问 X.509 证书数据所需的密码。

属性

例外

发生了与证书有关的错误。 例如:

  • 证书文件不存在。

  • 证书无效。

  • 证书的密码不正确。

rawData 参数为 null

  • 或 - rawData 参数的长度为 0。

注解

ASN.1 DER 是此类支持的唯一证书格式。

重要

从不对源代码中的密码进行硬编码。 可以使用 Ildasm.exe (IL 反汇编程序) 、十六进制编辑器或直接在文本编辑器(如 Notepad.exe)中打开程序集,从程序集中检索硬编码的密码。

如果 X509Certificate 通过指定 PKCS7 签名文件存储 rawData来创建证书,则会 X509Certificate 为对存储区签名的证书创建证书,而不是为存储中的任何证书创建证书。

适用于