c# - 使用带有智能卡证书的signedCms 时出错

标签 c# asp.net iis digital-certificate

我将智能卡证书从用户存储发送到 CmsSigner 的构造函数中,以使用智能卡签署 PKCS 加密。 我收到一条错误消息“提供程序无法执行该操作,因为上下文是以静默方式获取的。”在 IIS 7.5 中的 Web 应用程序中。 这在具有模拟功能的 IIS 6.0 中运行良好。 我曾使用 IIS 7.5 模拟,但结果是相同的。

这在同一台机器和同一电子 token 上的 Windows 表单应用程序中运行良好。我正在使用阿拉丁E-token。

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

CmsSigner cmsSigner = new CmsSigner(signerCert);

cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime());  
signedCms.ComputeSignature(cmsSigner);

经过一番谷歌,我发现了同样的问题 Here 。 但没有得到答复。

任何帮助将不胜感激。

提前致谢

最佳答案

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

而不是

signedCms.ComputeSignature(cmsSigner);

我用过

signedCms.ComputeSignature(cmsSigner, false);

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

关于c# - 使用带有智能卡证书的signedCms 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858594/

相关文章:

c# - Web 应用程序和网站中的 app_data 文件夹有什么区别?

asp.net - Silverlight mime 类型

iis - 有没有办法在没有通配符证书的情况下在同一台服务器上配置多个 SSL 站点?

c# - 尝试访问 iis 6.0 Web 服务时出现错误 403

c# - 多点连接 : iOS and Android

c# - 使用 C# 下载 Twilio 录音

c# - 从 DateTime 格式中减去天数

c# - Xamarin.iOS 上的回声消除 (AEC)

asp.net - 如何从子页面更改母版页面中的 Div 类

c# - 使用 AngularJS 将 ASP.NET CORE Web 应用程序发布到 IIS