Compartir a través de


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
  • Fácil de implementar: integrado en ASP.NET.
  • Usa el proveedor de pertenencia de ASP.NET, lo que facilita la administración de cuentas de usuario.
  • No es un mecanismo de autenticación HTTP estándar; usa cookies HTTP en lugar del encabezado de autorización estándar; algunos usuarios deshabilitan las cookies.
  • Difícil de usar desde clientes que no son de explorador. El inicio de sesión requiere un explorador.
  • Las credenciales de usuario se envían como texto simple en la solicitud.
  • Vulnerable a la falsificación de solicitudes entre sitios (CSRF); requiere medidas para prevenirla.

Brevemente, la autenticación de formularios en ASP.NET funciona de la siguiente manera:

  1. El cliente solicita un recurso que requiere autenticación.
  2. Si el usuario no está autenticado, el servidor devuelve HTTP 302 (encontrado) y redirige a una página de inicio de sesión.
  3. El usuario escribe las credenciales y envía el formulario.
  4. El servidor devuelve otro HTTP 302 que redirige de nuevo al URI original. Esta respuesta incluye una cookie de autenticación.
  5. El cliente vuelve a solicitar el recurso. La solicitud incluye la cookie de autenticación, por lo que el servidor concede la solicitud.

Illustration of how forms authentication in A S P dot Net works

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.