我有一個ASP NET Web服務器應用程序調用另一個進程運行在同一個盒子上創建一個PDF文件並返回它。第二個過程需要通過SSL進行安全連接。從ASP調用https進程網絡
第二個進程已經發布了帶有數字證書的ASP NET應用程序,但我仍然無法進行身份驗證,出現403錯誤。
的代碼是一個有點難以展現,但這裏有一個簡單的方法...
X509Certificate cert = X509Certificate.CreateFromCertFile("path\to\cert.cer");
string URL = "https://urltoservice?params=value";
HttpWebRequest req = HttpWebRequest.Create(URL) as HttpWebRequest;
req.ClientCertificates.Add(cert);
req.Credentials = CredentialCache.DefaultCredentials;
req.PreAuthenticate = true;
/// error happens here
WebResponse resp = req.GetResponse();
Stream input = resp.GetResponseStream();
錯誤文本是「遠程服務器返回錯誤:禁止(403)」 歡迎任何指針。
403既可以是授權和認證:403.7 - 要求客戶端證書。 403.16 - 客戶端證書不可信或無效。 403.17 - 客戶端證書已過期或尚未生效。 – Gonzalo 2009-11-25 16:02:29
感謝您的線索。我已經添加了網絡服務,並擁有pdf服務器目錄的完整權限並啓用了跟蹤功能。關閉HTTPS「修復」問題,但不適合現場。 更多... – 2009-11-25 20:35:50
下面是我遵循的步驟。 1.我們的CA頒發了「報告用戶」的客戶端證書 2.在我的PC打開的IE上,輸入pdf報告服務器的URL,提示您輸入證書,選擇上面的證書。 3.顯示pdf! 所以交互式工作沒有問題。回到web服務器 - 我編寫了上面的代碼,允許它以編程方式創建一個httprequest對象,但仍然在收到403錯誤。 跟蹤顯示它是一個403.7「訪問被拒絕」錯誤。 我會繼續努力,併發布任何進展 - 在此期間,所有的幫助表示讚賞。 – 2009-11-25 20:36:39