所以,我有以下系统:有一个客户端应用程序,它按如下方式请求服务:
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
,则在调用登录功能时出现 403.7 错误;
如果IIS的配置显示Accept client certificates
,我得 CryptographicException “m_safeCertContext是一个无效的句柄”;
但,这些问题只有在客户端使用Windows 7 x64,在Windows XP或Windows Server 2003上启动时才会发生,它确实很好。
ca安装在两台机器上,所有测试用例中的配置似乎完全相同,
所以我的问题是'到底是怎么回事?'
答案 0 :(得分:2)
我没有看到您的代码或配置出现任何问题,因此您可能会发现这些工具有助于您自己解决问题: