Compartir a través de


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 de MVC Music Store ASP.NET. La parte 7 abarca la pertenencia y la autorización.

Nuestro controlador del Administrador de la Tienda es accesible actualmente para cualquier persona que visite nuestro sitio. 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 completa de ASP.NET MVC 3 y la plantilla de aplicación web vacía de ASP.NET MVC 3 es que la plantilla vacía no incluye un controlador de cuentas. Agregaremos un controlador de cuenta copiando algunos archivos de una nueva aplicación ASP.NET MVC creada a partir de la plantilla completa de aplicación web de MVC 3 de ASP.NET.

Cree una nueva aplicación ASP.NET MVC con la plantilla de aplicación web de ASP.NET MVC 3 completa y copie los archivos siguientes 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 con 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 MvcMusicStore-Assets.zip, desde donde copiamos los archivos de diseño de nuestro 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:

Captura de pantalla del panel Explorador de soluciones con Controlador de cuenta punto C S, Modelos de cuenta punto CS y los archivos de la carpeta / Cuenta / resaltados.

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 manera más fácil de crear un usuario es usar el sitio web integrado de ASP.NET Configuration.

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

Captura de pantalla de la ventana explorador de soluciones con el icono de globo y martillo resaltado en un rectángulo rojo.

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.

Captura de pantalla del sitio web de configuración que muestra la sección Roles y el vínculo Habilitar roles resaltado en un rectángulo rojo.

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

Captura de pantalla del sitio web de configuración que muestra la sección Roles y el vínculo Crear o administrar roles resaltado en un rectángulo rojo.

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

Captura de pantalla de la ventana de configuración que muestra administrador en el campo Nuevo nombre de rol y está resaltado con una flecha roja.

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

Captura de pantalla del sitio web de configuración que muestra la sección Usuarios y el vínculo Crear usuario resaltado en un rectángulo rojo.

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

Campo Valor
Nombre de usuario Administrador
contraseña
Confirmar contraseña
Correo electrónico (cualquier dirección de correo electrónico funcionará)
Pregunta de seguridad (lo que quiera)
Respuesta de seguridad (lo que quiera)

Nota:

  • En la tabla anterior, se ha omitido la contraseña.
  • Por supuesto, puede usar cualquier contraseña que quiera. 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.

Captura de pantalla del sitio web de configuración que muestra la sección Roles con la casilla Rol de administrador marcada y resaltada con un rectángulo rojo.

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

Captura de pantalla del sitio web de configuración que muestra un mensaje que indica que la creación de la cuenta de usuario se completó correctamente.

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 Controller.

Ahora, al navegar a /StoreManager se abre un cuadro de diálogo Iniciar sesión:

Captura de pantalla de la página web de la tienda de música que muestra el cuadro de diálogo iniciar sesión con campos de texto de nombre de usuario y contraseña.

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