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:

  1. Establecer una solicitud CookieContainer a globalCookieContainer.
  2. 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).
  3. Crea otro HttpWebRequest instancia y establecer el globalCookieContainer para solicitar CoockieContainer.
  4. 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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top