Dada la importancia de esta sección, ASP.NET MVC nos incluye una estructura básica con la funcionalidad que está lista para utilizarse ya en un ambiente de producción si así lo consideramos, pero que gracias a la estructura de la aplicación es altamente personalizable, con esto podemos lograr adaptarlo a nuestras necesidades.
Aplicando la Autenticación
Para requerir que un usuario ingrese y se autentique en nuestro sistema, podemos pedirle de varias formas que realice esta acción, podemos validar acciones individuales de los controladores o también podemos proteger un controlador en su totalidad.
Veamos en la siguiente imagen un código de un controlador de usuarios que nos permite acceder al perfil del mismo:
Aquí se muestra como ubicamos al usuario por su nombre buscándolo a través del método GetUserByUsername, sin embargo tenemos un error fatal y es que no estamos logueados al sistema en este momento.
Ahora veamos en la siguiente imagen como ASP.NET MVC nos ayuda a manejar el requerimiento de tener que estar logueado para acceder a la acción correspondiente:
Aquí utilizamos [Autorize] este atributo o propiedad hace que sea requerido el identificador del usuario, por lo que si un usuario no ha ingresado al sistema intenta acceder a la URL que lo va a llevar al recurso Perfil le va a pedir que lo haga mostrando la pantalla de login/registro.
AccountController
Debido a que la tarea de un framework es facilitar la vida y el trabajo del desarrollador, ASP.NET MVC ya implementa un controlador de cuentas de usuario, el AccountController, este contiene acciones totalmente funcionales que permiten facilitar el flujo de la aplicación.
Las acciones que tiene implementadas son:
Es importante recalcar que debido a la modularidad de la construcción de las aplicaciones, podemos personalizar este módulo de ingreso con una cuenta al sistema, de hecho es recomendable al menos cambiar el aspecto que tiene:
Para logar este cometido podemos modificar la plantilla que se nos genera al crear un nuevo proyecto y ahí agregar, eliminar o modificar los elementos necesarios para hacer de esta funcionalidad nuestra.