【发布时间】:2023-03-20 02:25:02
【问题描述】:
我有一个使用 WCF 的 WinForms 应用程序,并将证书作为参数传递给函数:
mySvcClient.SendDocument(cert.Export(X509ContentType.SerializedCert, "password"));
...
在 WCF 服务中,我从字节数组重新创建了证书:
public void SendDocument (byte[] binaryCert)
{
X509Certificate2 cert = new X509Certificate2(binaryCert, "password");
...
但是当使用证书对xml进行签名时,出现错误“Keyset does not exist”:
if (cert.HasPrivateKey) // WORKS!!!
{
signedXml.SigningKey = cert.PrivateKey; // THROW "keyset does not exist" EXCEPTION
...
在我的电脑中,应用程序 100% 运行!但是在 WebServer 中,我得到了这个错误!
问题是:即使 X509Certificate2 是从字节数组重新创建的,我需要一些特殊权限才能访问私钥吗?
谢谢!
【问题讨论】:
-
该链接可能对您有所帮助...stackoverflow.com/a/39223239/3857542
-
我遇到了同样的问题,这是唯一对我有用的解决方案stackoverflow.com/a/57667772/591656
标签: c# wcf x509certificate