【问题标题】:Error when using signedCms with smartcard certificate将 signedCms 与智能卡证书一起使用时出错
【发布时间】:2023-04-06 23:04:01
【问题描述】:

我将智能卡证书从用户存储发送到 CmsSigner 的构造函数,以使用智能卡对 PKCS 加密进行签名。 我收到一条错误消息,提示“提供者无法执行该操作,因为上下文被获取为静默。”在 IIS 7.5 中的 Web 应用程序中。 这在 IIS 6.0 With Impersonation 中运行良好。 我曾在 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);

经过一些谷歌我发现了同样的问题Here 。 但是没有人回答。

任何帮助将不胜感激。

提前致谢

【问题讨论】:

    标签: c# asp.net iis digital-certificate


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我在尝试使用智能卡签署数据时遇到了同样的错误,而这张卡受 PIN 保护。

      代替

      signedCms.ComputeSignature(cmsSigner);
      

      我用过

      signedCms.ComputeSignature(cmsSigner, false);
      

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

      【讨论】:

      • 谢谢,就是这样!
      猜你喜欢
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多