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

回答