Attualmente sto effettuando l'integrazione con un sistema creato da una terza parte. Questo sistema richiede l'invio di una richiesta tramite XML/HTTPS. Il 3 ° partito mi inviare il certificato e ho installatoProblemi WebClient + HTTPS
Io uso il seguente codice:
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));
}
Questo codice restituisce il seguente WebException
:
La connessione sottostante chiusa: Impossibile stabilire relazione di fiducia per il canale sicuro SSL/TLS.
UPDATE Perché è un server di prova sto lavorando contro, il certificato non è attendibile e la convalida non riesce ... Per bypassare questo ambiente di test/debug, creare un nuovo ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
e qui è la mia "falso" callback
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
+1 per l'aggiornamento con il codice è stato utilizzato. Bella soluzione rapida per me a causa di questo. –
Questo è stato molto utile invece di registrare la radice CA del violinista nella mia dev-machine durante il debug dei servizi web SSL! Ho appena inserito un #if DEBUG sulla parte che ha aggiunto il dummy callback per non inserirlo nel codice di produzione. – jishi
Vai [qui.] (Http://forums.asp.net/p/1174025/1972251.aspx) – Lonzo