我开发了一个c#(.NET 4.0)应用程序,它使用SecureBlackbox库对PDF文档进行签名。对于我的签名,签名过程使用来自受信任的根证书颁发机构和中间证书颁发机构的一些已安装的用户证书。当我以用户身份打开我的测试应用程序时,签名有效,但是当我在IIS上的WCF服务中实现此模块时(对我的应用程序池使用 LocalSystem 身份),它无法正常工作,因为它无法找到那些证书。
请注意,我还在计算机帐户中使用mmc.exe安装了这些证书 - >本地计算机管理单元,但这并没有解决它。我也尝试将它们添加到服务帐户 - >本地计算机 - >万维网发布服务(那是IIS,对吗?),但没有成功......
有人可以提出别的建议吗?我根本不确定IIS作为帐户使用什么,或者即使它可以以其他方式访问我的证书,请帮助。
答案 0 :(得分:1)
确保证书具有本地系统的读取权限(如果这是您的iis进程设置为运行的那个)。
答案 1 :(得分:0)
我发现正确的是当您将ApplicationPool与身份LocalSystem一起使用时,添加管理单元时可以使用mmc.exe管理属于系统的证书:计算机帐户 - >本地电脑。实际问题是我使用SBB库从系统存储中获取证书时的错误编码。我已经解决了这个问题,因此我解决了这个问题。