Comment définir les informations d'identification proxy à un client wcf spécifique?
J'ai besoin de vous connecter à certains publics, service wcf, mais il y a certains proxy entre moi et le service.
Si j'utilise par défaut les paramètres de proxy comme
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
ou
HttpWebRequest.DefaultWebProxy
il fonctionne parfaitement bien
mais je n'ai pas besoin de définir les paramètres de proxy pour l'ensemble de l'application, j'ai besoin de connexion spécifique. Alors, comment je peux faire?
J'ai vu propriété ProxyAddress
(client.Endpoint.Binding as BasicHttpBinding).ProxyAddress
mais il n'y a pas toutes les propriétés pour les informations d'identification...
Je pensais en quelque sorte modifier HttpWebRequest, mais je ne sais pas comment faire pour l'obtenir...
Résolu
Merci à vous tous pour vos réponses.
Réponse de AntonK adapté pour la résolution de mon problème.
Au moment où cette question était réelle, je l'ai résolu de la même manière, mais sans l'utilisation du web.config et a écrit cette méthode
void SetProxySettings<TChannel>(ClientBase<TChannel> client,
bool useProxy, string address, int port, string login, string password)
where TChannel : class
{
if (!useProxy) return;
var b = client.Endpoint.Binding as BasicHttpBinding;
if (b == null)
{
System.Diagnostics.Debug.WriteLine("Binding of this endpoint is not BasicHttpBinding");
return;
}
b.ProxyAddress = new Uri(string.Format("http://{0}:{1}", address, port));
b.UseDefaultWebProxy = false; //!!!
b.Security.Mode = BasicHttpSecurityMode.Transport;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; //!!!
b.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic; //!!!
if (client.ClientCredentials == null) return;
client.ClientCredentials.UserName.UserName = login;
client.ClientCredentials.UserName.Password = password;
}
source d'informationauteur Pyfhon
Vous devez vous connecter pour publier un commentaire.
Voici un article traitant de cette question.
http://blogs.msdn.com/b/stcheng/archive/2008/12/03/wcf-how-to-supply-dedicated-credentials-for-webproxy-authentication.aspx
En résumé, c'est la façon de configurer un proxy pour un service spécifique dans le web.config. Dans la liaison de config, ensemble proxyAddress="http://myproxy:8080" et définir useDefaultWebProxy="false"
Vous pouvez essayer ce
espère que cela aide