Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Tutorial: Utilizar la autenticación mediante formularios en ASP.NET MVC

Muchas aplicaciones web requieren una manera de restringir el acceso a algunos recursos (por ejemplo determinadas páginas) para que esos recursos solo sean accesibles para los usuarios autenticados. La plantilla de proyecto de aplicación web predeterminada de ASP.NET MVC proporciona un controlador, modelos de datos y vistas que puede utilizar para agregar la autenticación de formularios de ASP.NET a su aplicación. La funcionalidad integrada permite a los usuarios registrarse, iniciar y cerrar una sesión y cambiar la contraseña. Para muchas aplicaciones, esta funcionalidad proporciona un nivel de autenticación de usuarios suficiente.

Este tutorial muestra la funcionalidad que se proporciona de forma predeterminada para la autenticación de formularios de ASP.NET en una aplicación de ASP.NET MVC. En el tutorial se muestran las siguientes tareas:

  • Cómo crear una aplicación de ASP.NET MVC que contiene la funcionalidad integrada para la autenticación.

  • Cómo utilizar las características integradas para crear una nueva cuenta de usuario.

  • Cómo los usuarios que iniciaron una sesión pueden cambiar la contraseña.

  • Cómo restringir el acceso a vistas concretas para que solo los usuarios autenticados (con sesión iniciada) puedan verlas.

Para poder completar este tutorial, necesitará:

  • Microsoft Visual Studio 2008 Service Pack 1 o Visual Web Developer 2008 Express Edition Service Pack 1, o una versión posterior de Visual Studio.

  • El marco de ASP.NET MVC 2. Si ha instalado Visual Studio 2010, ASP.NET MVC 2 ya estará instalado en su equipo. Para descargar la versión más actualizada del marco, vea la página de descarga de ASP.NET MVC.

En este tutorial se supone que está familiarizado con ASP.NET MVC. Para obtener más información, vea ASP.NET MVC 2.

Para empezar, cree una nueva aplicación web de ASP.NET MVC.

Para crear una aplicación de ASP.NET MVC

  1. En el menú Archivo, haga clic en Nuevo proyecto.

  2. En Tipos de proyecto del cuadro de diálogo Nuevo proyecto, expanda Visual Basic o Visual C# y, a continuación, haga clic en Web.

  3. En Plantillas instaladas de Visual Studio, seleccione Aplicación web de ASP.NET MVC 2.

  4. En el cuadro Nombre, escriba MvcAuthentication.

  5. En el cuadro Ubicación, escriba el nombre de la carpeta de proyecto.

  6. Seleccione Crear directorio para la solución.

  7. Haga clic en Aceptar.

  8. En el cuadro de diálogo Crear proyecto de prueba unitaria, seleccione No, no crear un proyecto de prueba unitaria y, a continuación, haga clic en Aceptar.

    NotaNota:

    Si utiliza la edición Standard de Visual Studio, no se mostrará el cuadro de diálogo Crear proyecto de prueba unitaria.

    Se crea el nuevo proyecto de aplicación MVC.

En la carpeta Controllers, la clase de controlador AccountController contiene métodos de acción que pueden registrar un nuevo usuario, iniciar y cerrar la sesión del usuario y cambiar la contraseña de un usuario existente. En la carpeta Views, la carpeta Accounts contiene vistas compatibles con estas acciones. En la carpeta Models, la clase AccountModels contiene clases que definen los objetos de datos, servicios y rutinas de validación compatibles con la autenticación de formularios.

En la carpeta Views, la subcarpeta Shared contiene un control denominado LogOnUserControl.ascx que indica si el usuario ha iniciado una sesión. El control se muestra en la parte superior de la vista de la página maestra. Si el usuario no ha iniciado una sesión, el control muestra "Iniciar sesión" y un vínculo a la vista LogOn. Cuando el usuario ha iniciado una sesión, el control muestra un mensaje de bienvenida que incluye el nombre de usuario y un vínculo que permite al usuario cerrar la sesión.

En esta sección del tutorial, utilizará las características integradas de la aplicación para registrar un nuevo usuario y examinar cómo se almacena la información del usuario.

Para registrar un nuevo usuario

  1. Presione CTRL-F5 para ejecutar la aplicación.

  2. En la parte superior de la página, haga clic en Iniciar sesión.

  3. Haga clic en Registrarse.

  4. Especifique los valores de los cuadros Nombre de usuario, Dirección de correo electrónico, Contraseña y Confirmar contraseña.

    Tome nota del nombre de usuario y la contraseña que utiliza, porque necesitará las credenciales posteriormente en este tutorial.

  5. Haga clic en Registrarse.

    Un mensaje de bienvenida y un vínculo para cerrar la sesión se muestra en la parte superior de la página.

Al registrar un usuario, el marco de MVC de ASP.NET comprueba si existe el archivo de base de datos de pertenencia a ASP.NET. Si la base de datos no existe, ASP.NET crea un archivo de base de datos denominado ASPNETDB.MDF y lo rellena con las tablas necesarias.

Para examinar la base de datos de pertenencia

  1. En el Explorador de soluciones, haga clic en el botón Actualizar y, a continuación, expanda la carpeta App_Data.

    El archivo ASPNETDB.MDF se agrega a la carpeta App_Data.

  2. En el Explorador de servidores, expanda Conexiones de datos y, a continuación, expanda ASPNETDB.MDF.

    Ahora puede examinar las tablas, vistas de datos y procedimientos almacenados que constituyen la base de datos. Observe que hay tablas, vistas y procedimientos almacenados que son compatibles con la autenticación de usuarios, perfiles, pertenencia y roles.

La plantilla de proyecto de ASP.NET MVC proporciona métodos de acción y vistas que permiten a los usuarios cambiar las contraseñas, pero le permite decidir cómo desea utilizarlos. Para este tutorial, agregará un vínculo Cambiar contraseña al control LogOnUserControl.ascx. Como resultado, se muestra el vínculo a la vista ChangePassword siempre que el usuario inicia una sesión.

Para agregar y probar la funcionalidad de cambio de contraseña

  1. Si la aplicación web todavía se está ejecutando en el explorador, ciérrelo.

  2. En la subcarpeta Shared de la carpeta Views, abra el control LogOnUserControl.ascx.

  3. Inserte el siguiente marcado de vínculo de acción directamente después del vínculo de acción LogOff:

    [ <%: Html.ActionLink("Change Password", "ChangePassword", "Account") %> ]
    
  4. Guarde el archivo.

  5. Presione CTRL-F5 para compilar y ejecutar la aplicación.

  6. Inicie sesión como el usuario que creó anteriormente.

    El mensaje de bienvenida, el vínculo de cierre de sesión y el nuevo vínculo de cambio de contraseña se muestran en la parte superior de la página.

  7. Haga clic en Cambiar contraseña.

  8. Especifique los valores de los cuadros Contraseña actual, Nueva contraseña y Confirmar la nueva contraseña.

  9. Haga clic en Cambiar contraseña.

    Se ha cambiado la contraseña.

  10. Haga clic en el vínculo Cerrar sesión.

  11. Haga clic en el vínculo Iniciar sesión e inicie de nuevo una sesión utilizando el mismo nombre de usuario y la nueva contraseña.

Ahora que los usuarios pueden iniciar y cerrar una sesión y cambiar una contraseña, puede especificar qué partes de la aplicación deberían estar restringidas a los usuarios autenticados. Puede restringir el acceso a una vista utilizando el atributo AuthorizeAttribute para marcar el método de acción que crea la vista. Puede restringir el acceso a todas las vistas de un controlador utilizando el atributo AuthorizeAttribute para marcar el propio controlador.

En lo que se refiere a este tutorial, restringirá el acceso a la vista About.

Para restringir el acceso a una vista

  1. Si la aplicación web todavía se está ejecutando en el explorador, ciérrelo.

  2. Abra la clase HomeController y busque el método de acción About.

  3. Agregue el atributo AuthorizeAttribute a la declaración del método de acción About, como se muestra en el siguiente ejemplo:

    [Authorize]
    public ActionResult About()
    {
        return View();
    }
    

    <Authorize()> _
    Function About() As ActionResult
        Return View()
    End Function
    
  4. Guarde el archivo.

  5. Presione CTRL-F5 para compilar y ejecutar la aplicación.

  6. Sin iniciar una sesión, haga clic en la pestaña Acerca de.

    Se muestra la vista LogOn, porque ahora debe haber iniciado una sesión para ver la página About.

  7. Inicie una sesión en la aplicación.

  8. Haga clic en la pestaña Acerca de.

    Aparece la página About.

Aunque la plantilla de proyecto de ASP.NET MVC proporciona la autenticación de formularios, puede que desee obtener más información sobre la pertenencia de ASP.NET y sobre cómo agregar roles a la aplicación web. Para obtener más información, vea los temas siguientes:

Adiciones de comunidad

AGREGAR
Mostrar: