所以,我有以下系统:有一个客户端应用程序,它请求服务如下:
blar.ServiceSecurity wsSecurity = new blar.ServiceSecurity();
wsSecurity.Url = this.tURL + "Security.asmx";
CookieContainer cc = new CookieContainer();
wsSecurity.CookieContainer = cc;
wsSecurity.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
blar.LoginResult lr = wsSecurity.Login(login, password);
然后,this.tURL + "Security.asmx"
'Login
方法的 web 服务必须从以下位置获取 ClientCertificate (certPath):
Context.Request.ClientCertificate.Certificate;
并用它做点什么。
有两个问题:
如果 IIS 的配置显示Require client certificates
,调用 Login 函数时出现403.7错误;
如果 IIS 的配置显示Accept client certificates
,我得到CryptographicException "m_safeCertContext is an invalid handle";
但是,只有当客户端在 Windows 7 x64 上运行时才会出现这些问题,当在 Windows XP 或 Windows Server 2003 上启动时,它运行良好。
ca 安装在两台机器上,所有测试用例的配置似乎完全相同,
所以我的问题是“这到底是什么?”