Autenticación de formularios en ASP.NET Web API
por Mike Wasson
La autenticación de formularios usa un formulario HTML para enviar las credenciales del usuario al servidor. No es un estándar de Internet. La autenticación de formularios solo es adecuada para las API web a las que se llama desde una aplicación web, de modo que el usuario pueda interactuar con el formulario HTML.
Ventajas | Inconvenientes |
---|---|
|
|
Brevemente, la autenticación de formularios en ASP.NET funciona de la siguiente manera:
- El cliente solicita un recurso que requiere autenticación.
- Si el usuario no está autenticado, el servidor devuelve HTTP 302 (encontrado) y redirige a una página de inicio de sesión.
- El usuario escribe las credenciales y envía el formulario.
- El servidor devuelve otro HTTP 302 que redirige de nuevo al URI original. Esta respuesta incluye una cookie de autenticación.
- El cliente vuelve a solicitar el recurso. La solicitud incluye la cookie de autenticación, por lo que el servidor concede la solicitud.
Para obtener más información, consulte Introducción a la autenticación de formularios.
Uso de la autenticación de formularios con Web API
Para crear una aplicación que use la autenticación de formularios, seleccione la plantilla "Aplicación de Internet" en el Asistente para proyectos de MVC 4. Esta plantilla crea controladores MVC para la administración de cuentas. También puede usar la plantilla "Aplicación de página única", disponible en la actualización de ASP.NET de otoño de 2012.
En los controladores de API web, puede restringir el acceso mediante el atributo [Authorize]
, como se describe en Uso del atributo [Authorize].
La autenticación de formularios usa una cookie de sesión para autenticar solicitudes. Los navegadores envían automáticamente todas las cookies pertinentes al sitio web de destino. Esta característica hace que la autenticación de formularios sea potencialmente vulnerable a ataques de falsificación de solicitudes entre sitios (CSRF). Consulte Prevención de ataques de falsificación de solicitudes entre sitios (CSRF).
La autenticación de formularios no cifra las credenciales del usuario. Por lo tanto, la autenticación de formularios no es segura a menos que se use con SSL. Consulte Trabajar con SSL en Web API.