Un URI puede contener username:password antes de su host. Eso no significa que toda API de .NET que acepta ese URI copie la información del usuario en un objeto de autenticación.

Al construir WebProxy directamente, haga explícita la asignación de credenciales:

var proxy = new WebProxy("http://203.0.113.10:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};

Las variables de endpoint y de cuenta son ilustrativas. Así se mantienen separadas la dirección de destino, la dirección del proxy y la cuenta del proxy.

Si un formato de entrada proporciona una URL con credenciales, analice su información de usuario de forma deliberada. Conserve una contraseña con dos puntos dividiendo solo en el separador de credenciales y decodifique los componentes codificados en la etapa adecuada. Evite imprimir la URL original mientras diagnostica ese analizador.

Una URL de proxy que funciona como ajuste de entorno puede comportarse de forma distinta al pasarla a otro constructor. La inicialización del proxy de entorno tiene su propia lógica de análisis; no es una promesa de que todo constructor consuma los mismos campos.

Por último, asigne el objeto de proxy configurado al controlador que ejecuta la solicitud. Unas credenciales correctas en un WebProxy sin usar no pueden afectar la conexión.

Artículos relacionados