我正在嘗試使用下面的代碼將客戶端證書傳遞給服務器,但是我仍然恢復HTTP錯誤403.7-禁止:需要SSL客戶端證書。 HttpWebRequest不會發送客戶端證書的可能原因是什麼?在HttpWebRequest中發送客戶端證書
var clientCertificate = new X509Certificate2(@"C:\Development\TestClient.pfx", "bob");
HttpWebRequest tRequest = (HttpWebRequest)WebRequest.Create("https://ofxtest.com/ofxr.dll");
tRequest.ClientCertificates.Add(clientCertificate);
tRequest.PreAuthenticate = true;
tRequest.KeepAlive = true;
tRequest.Credentials = CredentialCache.DefaultCredentials;
tRequest.Method = "POST";
var encoder = new ASCIIEncoding();
var requestData = encoder.GetBytes("<OFX></OFX>");
tRequest.GetRequestStream().Write(requestData, 0, requestData.Length);
tRequest.GetRequestStream().Close();
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CertPolicy.ValidateServerCertificate);
WriteResponse(tRequest.GetResponse());
我已經使用了fiddler,並且在初始連接請求中看不到客戶端證書。我有這個證書在mfc測試應用程序中工作,所以它似乎是.net不喜歡的東西。 – 2010-03-20 04:35:09
您可以使用SoapUI進行示例請求,並將.pfx附加到它(請參閱首選項| SSL,並且您可以在其中附加.pfx)。通過Fiddler檢查請求,你會看到一個好的應該看起來像什麼。 – 2010-03-20 12:36:57