我有一个 Web 服务,它通过要求消费的第三方应用程序通过客户端证书来保护。我已经在生产环境和客户端上安装了证书。此过程目前适用于具有类似设置的其他客户端。当前版本是用 .NET 3.5 编写的,可以在我的 cassini 下的开发机器上完美运行(并且独立运行),但拒绝在我的生产机器上使用相同的代码和证书设置。我已确认提供者 Web 服务通过浏览器接受安装在客户端上的证书,但是当以编程方式将证书添加到 Web 服务调用时,我得到 403,访问被拒绝。在向受保护的 Web 服务发出请求之前,我输出添加到调用中的证书的指纹,它确实是附加的正确证书。我的想法是,在某个地方,它无法访问证书的私钥部分。
有任何想法吗?
注意:我已授予 IIS 进程对相关 ~/crypto 目录的访问权限。
这是 C# 和 .NET 3.5