3

所以,我有以下系统:有一个客户端应用程序,这要求服务如下:证书问题403.7

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); 

然后,web服务在this.tURL + "Security.asmx"Login方法来获取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

你能还测试在Vista/Windows 7的86?在XP/2003之后证书API发生了显着变化;在Vista/7 86测试可以帮助确定它是否是一个64位的问题还是其他什么东西。 – user423430 2011-07-26 19:43:29

回答