Service WCF, BasicHttpBinding et Proxy

Partager sur linkedin
Partager sur twitter
Partager sur facebook

Service WCF, BasicHttpBinding et Proxy

 

Contexte

 

Lorsque l’on fait appel à un service WCF via des requêtes HTTP on peut vouloir utiliser un proxy nécessitant une authentification.

 

Solution

 

Pour pouvoir configurer un proxy avec authentification depuis une application cliente qui utilise donc un service WCF, une solution est de coder ceci :

var svc = new MonService.ServiceClient();
var b = svc.Endpoint.Binding as BasicHttpBinding;
b.UseDefaultWebProxy = true;

A ce stade nous indiquons que nous souhaitons utiliser le Proxy Web par defaut pour tous les appels.

Il nous suffit de configurer le proxy par défaut :

WebProxy proxy = new WebProxy (new Uri (http://xxxxxxxx/));
proxy.Credentials = new NetworkCredential(login, password);
WebRequest.DefaultWebProxy = proxy;

 

Problème

 

Très bien… Maintenant, les tests sont plus compliqués. Si le service appelé par le client est un service local (ce qui peut arriver en tests), donc accessible via localhost ou 127.0.0.1 , cela ne fonctionnera pas. Le proxy sera forcément ignoré. Et il n’y a pas d’alternative. Une solution consiste à publier le site sur un autre serveur pour tester de sorte que le service soit appelé avec une autre adresse IP et que le proxy soit bel et bien appelé…

 

Infos complémentaires

 

var b = svc.Endpoint.Binding as BasicHttpBinding;
b.UseDefaultWebProxy = true;
b.BypassProxyOnLocal = false; // n’aura aucun impact. Et n’est de toutes façons pas fait pour ce cas.
b.ProxyAdress = new Uri (http://XXXXXXX/);  //spécifie un proxy mais ne donne pas moyen de passer une authentification.

 

Auteur: Alain BELUT

 

En réagissant à cet article, vous nous permettez d'affiner les contenus que nous publions ici !

  • Awesome (0)
  • Interesting (0)
  • Useful (0)
  • Boring (0)
  • Sucks (0)

Si cet article vous a plu, n’hésitez pas à le partager via

Partager sur linkedin
Partager sur twitter
Partager sur facebook