usernamepasswordvalidator - WCF Custom Http Proxy Authentication
wcf with credentials (3)
De los comentarios a mi respuesta, supongo que no es posible tener diferentes credenciales para la autenticación del servicio y el proxy HTTP.
¡eso apesta! :(
¿Es posible proporcionar a WCF una dirección proxy personalizada y credenciales personalizadas?
Encontré esta respuesta en stackoverflow: ¿Cómo establecer el proxy con credenciales para el cliente WCF generado? , pero tengo una complicación, el servicio del que me estoy autenticando utiliza su propia autenticación, así que tengo que usar dos conjuntos de credenciales (una para pasar el proxy y la otra para autenticarse en el servicio)
Estoy usando la técnica que se describe en las respuestas a la otra pregunta para proporcionar las credenciales del servicio. p.ej
client.ClientCredentials.UserName.UserName = username;
client.ClientCredentials.UserName.Password = password;
Puedo establecer la dirección del proxy usando algo como esto:
(client.Endpoint.Binding as WSHttpBinding).ProxyAddress = ...;
¿Cómo configuro lo que efectivamente son dos conjuntos de credenciales? (NB: ¡Las credenciales para el proxy y el servicio real son diferentes!) También tenga en cuenta que los detalles del proxy no son necesariamente los detalles del proxy del sistema por defecto.
Las credenciales del cliente que está configurando están bien para poder autenticarse en sus servicios.
Para la autenticación proxy, debe usar HttpTransportSecurity.ProxyCredentials.
Este enlace puede ayudarte.
Si configura la propiedad WebRequest.DefaultWebProxy en un nuevo WebProxy con credenciales, WCF lo usará para todas las solicitudes HTTP que realice. (Esto afectará a todas las HttpWebRequests utilizadas por la aplicación a menos que se anule explícitamente).
// get this information from the user / config file / etc.
Uri proxyAddress;
string userName;
string password;
// set this before any web requests or WCF calls
WebRequest.DefaultWebProxy = new WebProxy(proxyAddress)
{
Credentials = new NetworkCredential(userName, password),
};
La publicación de mi blog en los servidores proxy contiene más detalles.