使用pfx文件加载证书

时间:2019-01-14 15:59:56

标签: c# asp.net

我在托管服务器中有一个Web应用程序,并且我试图使用以下代码加载pfx文件并使用它在该服务器中签署文档。

X509Certificate2 cert = new X509Certificate2(physicalPath of pfx file, password, X509KeyStorageFlags.MachineKeySet);

但是在托管服务器中却出现以下错误:

  

“ /”应用程序中的服务器错误。指定的网络密码不正确。

     

描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

     

异常详细信息:System.Security.Cryptography.CryptographicException:指定的网络密码不正确。

我使用了该代码,因为托管服务器提供商不允许我安装证书,因此我认为使用带有私钥的pfx文件可以解决问题,但不是。...
提供者回答我,可能是该代码(或我的帐户)正试图访问操作系统中的某些保护区域……是真的吗?有解决方法吗?

1 个答案:

答案 0 :(得分:0)

您实际上要执行的操作是通过代码Enum MachineKeySet导入PFX文件,实际上是通知X509构造函数将私钥存储在本地计算机存储中,而不是当前用户存储中。

当然,在这种情况下,您的进程将需要对计算机证书存储区的必要访问,并将尝试写入默认情况下不允许的数据。

您可以改用此方法

[System.CLSCompliant(false)]
public X509Certificate2 (string fileName, System.Security.SecureString password);