Compartir vía


Parte 7: Pertenencia y autorización

por Jon Galloway

MVC Music Store es una aplicación de tutorial que presenta y explica paso a paso cómo usar ASP.NET MVC y Visual Studio para el desarrollo web.

MVC Music Store es una implementación ligera de la tienda de muestras que vende álbumes de música en línea e implementa la administración básica del sitio, el inicio de sesión de usuario y la funcionalidad del carro de la compra.

En esta serie de tutoriales se detallan todos los pasos realizados para compilar la aplicación de ejemplo ASP.NET MVC Music Store. La parte 7 abarca la pertenencia y la autorización.

En la actualidad, cualquier persona que visite nuestro sitio puede acceder a nuestro controlador de administrador de tiendas. Vamos a cambiar esto para restringir el permiso a los administradores del sitio.

Adición de AccountController y Views

Una diferencia entre la plantilla de aplicación web ASP.NET MVC 3 completa y la plantilla de aplicación web ASP.NET MVC 3 vacía es que la plantilla vacía no incluye un controlador de cuentas. Agregaremos un controlador de cuentas copiando algunos archivos de una nueva aplicación ASP.NET MVC creada a partir de la plantilla completa de aplicación web ASP.NET MVC 3.

Cree una nueva aplicación ASP.NET MVC utilizando la plantilla completa de aplicación web ASP.NET MVC 3 y copie los siguientes archivos en los mismos directorios de nuestro proyecto:

  1. Copiar AccountController.cs en el directorio Controllers
  2. Copiar AccountModels en el directorio Models
  3. Cree un directorio Account dentro del directorio Views y copie las cuatro vistas

Cambie el espacio de nombres de las clases Controller y Model para que comiencen por MvcMusicStore. La clase AccountController debe usar el espacio de nombres MvcMusicStore.Controllers y la clase AccountModels debe usar el espacio de nombres MvcMusicStore.Models.

Nota: Estos archivos también están disponibles en la descarga de MvcMusicStore-Assets.zip desde la que copiamos nuestros archivos de diseño de sitio al principio del tutorial. Los archivos de pertenencia se encuentran en el directorio Código.

La solución actualizada debe ser similar a la siguiente:

Screenshot of the Solution Explorer pane with Account Controller dot C S, Account Models dot CS, and the files in the / Account / folder highlighted.

Agregar un usuario Administrativo con el sitio de configuración de ASP.NET

Antes de requerir autorización en nuestro sitio web, necesitaremos crear un usuario con acceso. La forma más sencilla de crear un usuario es utilizar el sitio web de configuración ASP.NET incorporado.

Inicie el sitio web de Configuración ASP.NET haciendo clic en el icono del Explorador de soluciones.

Screenshot of the Solution Explorer window with the globe and hammer icon highlighted in a red rectangle.

Esto inicia un sitio web de configuración. Haga clic en la pestaña Seguridad de la pantalla principal y, a continuación, haga clic en el vínculo "Habilitar roles" en el centro de la pantalla.

Screenshot of the configuration website showing the Roles section and the Enable roles link highlighted in a red rectangle.

Haga clic en el vínculo "Crear o administrar roles".

Screenshot of the configuration website showing the Roles section and the Create or Manage roles link highlighted in a red rectangle.

Escriba "Administrador" como nombre del rol y presione el botón Agregar rol.

Screenshot of the configuration window showing Administrator in the New role name field and is highlighted with a red arrow.

Haga clic en el botón Atrás y, a continuación, haga clic en el vínculo Crear usuario en el lado izquierdo.

Screenshot of the configuration website showing the Users section and the Create user link highlighted in a red rectangle.

Rellene los campos de información de usuario de la izquierda con la siguiente información:

Campo Valor
Nombre usuario Administrador
Contraseña password123!
Confirm Password password123!
Correo electrónico (cualquier dirección de correo electrónico funcionará)
Pregunta de seguridad (lo que quiera)
Respuesta de seguridad (lo que quiera)

Nota: Por supuesto, puede usar cualquier contraseña que desee. La configuración de seguridad de contraseña predeterminada requiere una contraseña de 7 caracteres de longitud y contiene un carácter no alfanumérico.

Seleccione el rol Administrador para este usuario y haga clic en el botón Crear usuario.

Screenshot of the configuration website showing the Roles section with the Administrator role checkbox ticked and highlighted with a red rectangle.

En este punto, debería ver un mensaje que indica que el usuario se creó correctamente.

Screenshot of the configuration website showing a message that the user account creation completed successfully.

Ahora puede cerrar la ventana del explorador.

Autorización basada en roles

Ahora podemos restringir el acceso al StoreManagerController mediante el atributo [Authorize], especificando que el usuario debe estar en el rol Administrador para acceder a cualquier acción del controlador de la clase.

[Authorize(Roles = "Administrator")]
public class StoreManagerController : Controller
{
    // Controller code here
}

Nota: El atributo [Authorize] se puede colocar en métodos de acción específicos, así como en el nivel de clase Controlador.

Ahora, al navegar a /StoreManager aparece un cuadro de diálogo de inicio de sesión:

Screenshot of the music store web page showing the log on dialog with username and password text fields.

Después de iniciar sesión con nuestra nueva cuenta de Administrador, podemos ir a la pantalla Edición del álbum como antes.