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

Nik*_*ara 2 c# asp.net iis digital-certificate

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

这在同一台机器和同一个 e-Tocken 上与 Windows 表单应用程序一起工作得很好。我正在使用 Aladin 电子令牌。

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

CmsSigner cmsSigner = new CmsSigner(signerCert);

cmsSigner.SignedAttributes.Add(new Pkcs9SigningTime());  
signedCms.ComputeSignature(cmsSigner);
Run Code Online (Sandbox Code Playgroud)

在一些谷歌之后,我在这里找到了同样的问题。但它没有得到答复。

任何帮助将不胜感激。

提前致谢

小智 6

I've got same error when i was trying to sign data using smart card and this card was protected by PIN.

Instead of

signedCms.ComputeSignature(cmsSigner);
Run Code Online (Sandbox Code Playgroud)

I used

signedCms.ComputeSignature(cmsSigner, false);
Run Code Online (Sandbox Code Playgroud)

After calling this method prompt window for PIN was shown. I wrote PIN and signing was successful.