Appeler un service Web externe via un proxy avec authentification
10 Août 2010 , Rédigé par Hugues MEUNIER Publié dans #.NET
L'appel de services Web externes à l'entreprise nécessite toujours de réaliser l'appel à travers un proxy. Ce proxy demande une authentification,de type Windows, s'il s'agit d'un Proxy ISA par exemple. S'il faut également passer un token, alors cela se complique quelque peu.
Ci-dessous, un exemple de code qui fonctionne bien dans tous les cas et qui permet de passer au proxy le token Windows du process en cours ce qui évite le stockage de données sensibles dans les fichiers de configuration :
// Création d'une instance WebProxy
IWebProxy proxy = new WebProxy(http://urlduproxy:portduproxy);
// Passe les credentials du cache au proxy
proxy.Credentials = System.Net.
CredentialCache.DefaultCredentials;
// prépare la requête
HttpWebRequest
myRequest =
(
HttpWebRequest)WebRequest.Create(http://urlduservice);
//affecte le proxy
myRequest.Proxy = proxy;
Et voilà !