Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将signedCms与智能卡证书一起使用时出错_C#_Asp.net_Iis_Digital Certificate - Fatal编程技术网

C# 将signedCms与智能卡证书一起使用时出错

C# 将signedCms与智能卡证书一起使用时出错,c#,asp.net,iis,digital-certificate,C#,Asp.net,Iis,Digital Certificate,我正在将智能卡证书从用户存储区发送到构造函数中,以便CmsSigner使用智能卡签署PKCS加密。 在IIS 7.5的web应用程序中,我收到一个错误,它说“提供程序无法执行操作,因为上下文是以静默方式获取的。”。 这在IIS 6.0中与模拟一起运行良好。 我在IIS7.5中使用了模拟,但结果是一样的 这与Windows窗体应用程序在同一台机器上和同一个e-Tocken上运行良好。我正在使用阿拉丁电子代币 ContentInfo contentInfo = new ContentInfo(msg

我正在将智能卡证书从用户存储区发送到构造函数中,以便CmsSigner使用智能卡签署PKCS加密。 在IIS 7.5的web应用程序中,我收到一个错误,它说“提供程序无法执行操作,因为上下文是以静默方式获取的。”。 这在IIS 6.0中与模拟一起运行良好。 我在IIS7.5中使用了模拟,但结果是一样的

这与Windows窗体应用程序在同一台机器上和同一个e-Tocken上运行良好。我正在使用阿拉丁电子代币

ContentInfo contentInfo = new ContentInfo(msg);
SignedCms signedCms = new SignedCms(contentInfo, false);

CmsSigner cmsSigner = new CmsSigner(signerCert);

cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime());  
signedCms.ComputeSignature(cmsSigner);
在谷歌搜索之后,我发现了同样的问题。 但没有人回答

任何帮助都将不胜感激


提前感谢

我在尝试使用智能卡签署数据时遇到了相同的错误,并且该卡受PIN保护

而不是

signedCms.ComputeSignature(cmsSigner);
我曾经

signedCms.ComputeSignature(cmsSigner, false);

调用此方法后,将显示PIN提示窗口。我写了PIN,签名成功。

我的问题是没有授予正确的权限,所以我在IIS服务器中将应用程序池的标识从ApplicationPoolIdentity更改为LocalService帐户,一切正常

谢谢,就这样!