Cuando se deben usar httpwebRequest.Credentials
-
28-10-2019 - |
Pregunta
Traté de realizar un POST
usando un HttpWebRequest
instancia a una URL web que requiere una autenticación (un ASP.NET MV3 Standart [Authorize]
Método de acción decorada con sistema de membresía de construcción), pero proporcionando inicio de sesión y paseswrd como NetworkCredentials
en HttpWebRequest
No hice el truco.
Terminé usando un global CookieContainer
y dos HttpWebRequests
:
- Establecer una solicitud
CookieContainer
aglobalCookieContainer
. - Publique nombre de usuario y contraseña a una URL de inicio de sesión. (Después de ese paso, el contenedor todavía informa que el recuento de cookies es 0).
- Crea otro
HttpWebRequest
instancia y establecer elglobalCookieContainer
para solicitarCoockieContainer
. - Publicar en una URL final que requiere autenticación. Por alguna razón, esta vez la segunda solicitud del objeto proporciona las cookies como parte de una solicitud y se lleva a cabo.
Una "magia" completa de la gestión de cookies no se discute en ningún lado (realmente intenté buscar).
Tenemos este escenario cubierto. Pero en que casos HttpWebRequest.Credentials
¿debería ser usado?
Solución
HttpWebRequest.Credentials
está destinado a usarse cuando la autenticación se realiza a través de uno de los esquemas en el AuthenticationSchemes
enum. Entre otros, esto incluye autores HTTP básicos y digerentes, NTLM y Kerberos.
Dicho esto, puede cocinar sus propios esquemas de autenticación personalizados derivando de NetworkCredential
en el lado del cliente e implementando IAuthenticationModule
en el lado del servidor.