Ich bin derzeit mit einem System von einer Drittpartei integriert. Dieses System erfordert, dass ich eine Anfrage mit XML/HTTPS sende. Die dritte Partei mir das Zertifikat schicken und ich installierte esWebClient + HTTPS Probleme
Ich verwende den folgenden Code ein:
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));
}
Dieser Code gibt die folgenden WebException
:
Die zugrunde liegende Verbindung wurde geschlossen: Kann nicht etablieren Vertrauensstellung für den sicheren SSL/TLS-Kanal.
UPDATE Weil es ein Test-Server ist gegen arbeite ich, wird das Zertifikat nicht vertrauenswürdig und die Validierung fehlschlägt ... dies in Test/Debug-Umgebung zu umgehen, erstellen Sie ein neues ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
und hier ist mein "fake" Rückruf
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
+1 mit dem Code für die Aktualisierung Sie verwendet haben. Schöne schnelle Lösung für mich deswegen. –
Dies war sehr nützlich, anstatt den fiddler CA root in meine dev-Maschine zu registrieren, wenn SSL webservices debuggen! Ich habe nur einen #if DEBUG um den Teil gelegt, der den Dummy-Callback hinzugefügt hat, um ihn nicht in den Produktionscode zu schreiben. – jishi
Go [hier.] (Http://forums.asp.net/p/1174025/1972251.aspx) – Lonzo