我将智能卡证书从用户存储发送到 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/