Je suis actuellement en train d'intégrer un système créé par un tiers. Ce système m'oblige à envoyer une requête en utilisant XML/HTTPS. La 3ème partie me faire parvenir le certificat et je l'ai installéWebClient + Problèmes HTTPS
J'utilise le code suivant:
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));
}
Ce code renvoie les éléments suivants WebException
:
La connexion sous-jacente a été fermée: Impossible d'établir relation de confiance pour le canal sécurisé SSL/TLS.
MISE À JOUR Parce qu'il est un serveur de test je travaille contre, le certificat est pas digne de confiance et validation échoue ... Pour contourner ce dans le test/environnement de débogage, créez un nouveau ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);
et voici mon rappel "faux"
private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
+1 pour la mise à jour avec le code utilisé. Belle solution rapide pour moi à cause de ça. –
Cela a été très utile au lieu d'enregistrer la racine CA du fiddler dans mon dev-machine lors du débogage des services web SSL! Je viens de mettre un # DEBUG autour de la partie qui a ajouté le rappel factice pour ne pas le mettre en code de production. – jishi
Go [ici.] (Http://forums.asp.net/p/1174025/1972251.aspx) – Lonzo