El uso predeterminado de las clases HttpClient
y HttpWebRequest
.NET está configurando la propiedad Credentials
y luego le pide a la instancia de la clase que realice una solicitud HTTP. Si el objetivo requiere una autorización Básica , ocurre lo siguiente (esas clases lo hacen bajo el capó y Fiddler muestra lo que está pasando):
- la primera solicitud se envía sin el encabezado Autorización
- el servidor declina y responde con HTTP 401
- el cliente vuelve a enviar la misma solicitud esta vez con el encabezado Autorización que contiene los datos correctamente codificados de la propiedad
Credentials
y este es el comportamiento predeterminado. Entonces, a menos que el usuario valide su aplicación y tome medidas adicionales, cada solicitud se envía dos veces, la primera se rechaza universalmente.
Mi pregunta es: ¿cuál es la razón de tal comportamiento predeterminado? La clase cliente tiene su propiedad Credentials
establecida, por lo que asume que el usuario quiere usar esas credenciales para la autenticación. ¿Por qué no enviar el encabezado apropiado con la primera solicitud? ¿Hacer esto último comprometería de alguna manera al cliente?