Tôi hiện đang tích hợp với hệ thống được tạo bởi bên thứ 3. Hệ thống này yêu cầu tôi gửi yêu cầu bằng cách sử dụng XML/HTTPS. Các bên thứ 3 gửi cho tôi giấy chứng nhận và tôi cài đặt nóWebClient + HTTPS Issues
tôi sử dụng đoạn mã sau:
using (WebClient client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
}
Mã này trả về sau WebException
:
Kết nối tiềm ẩn đã được đóng cửa: Không thể thiết lập mối quan hệ tin cậy cho kênh bảo mật SSL/TLS.
CẬP NHẬT Bởi vì nó là một máy chủ thử nghiệm Tôi đang làm việc chống lại, chứng chỉ không đáng tin cậy và xác nhận thất bại ... Để bỏ qua điều này trong môi trường thử nghiệm/gỡ lỗi, tạo ra một mới ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
và đây là của tôi "giả" callback
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
+1 để cập nhật với mã mà bạn sử dụng. Nice nhanh chóng sửa chữa cho tôi vì điều đó. –
Điều này rất hữu ích thay vì đăng ký gốc CA khó chịu vào máy ảo của tôi khi gỡ lỗi các dịch vụ web SSL! Tôi chỉ cần đặt # DE DEBUG xung quanh phần đã thêm lệnh gọi giả để không đặt nó vào mã sản xuất. – jishi
Vào [đây.] (Http://forums.asp.net/p/1174025/1972251.aspx) – Lonzo