Autenticación Simple con Visual Studio 2015

Hoy vamos a aprender cómo implementar un sistema de autenticación simple en nuestra aplicación usando MVC 5, pero antes de nada, ¿qué es y para qué sirve?:

La autenticación básica es un recurso mediante el cual yo demuestro a la aplicación que soy quien digo ser, es decir, que tengo las credenciales necesarias para acceder a ella. Su principal ventaja es la posibilidad de dar credenciales al usuario para poder navegar e interactuar en nuestra aplicación de la forma que nosotros queramos ordenar, pudiendo de esta forma asignar “privilegios” y/o roles al usuario en cuestión.

Tenemos cuatro tipos de implementación: ActiveDirectoryMembershipProvider, SqlMembershipProvider, SimpleMembershipProvider y UniversalProviders. En esta ocasión vamos a implementarla mediante el método más común: SimpleMembershipProvider. Con este método lo que hacemos es pasarle a la aplicación el ID de usuario y el nombre de usuario. Su principal desventaja es que tenemos que trabajar mediante una base de datos local mientras que otros métodos nos proporcionan más seguridad en nuestros datos al estar alojados en la nube, como el caso del UniversalProvider que aloja la base de datos en Azure.

A continuación, os dejamos el videotutorial explicativo y seguidamente repasaremos punto por punto las acciones a realizar:

Estos son los pasos a seguir:

– Abrimos un proyecto web nuevo, vacío y con implementación de MVC.

View post on imgur.com

– Nos vamos al webconfig de nuestra aplicación y añadimos las siguientes líneas de código:

View post on imgur.com

– Una vez añadido esto, nos dirigimos a la carpeta “Controllers” para añadir dos nuevos controladores, en esta ocasión los vamos a llamar HomeController y LoginController:

View post on imgur.com

– No nos olvidemos de poner la clase pública en ambos. Seguidamente tenemos que añadir para toda la clase del HomeController el atributo “[Authorize]”. Es un atributo que se le indica a un controlador para que nos pida las credenciales.

¡IMPORTANTE! Sólo debemos poner el atributo Authorize en el HomeController, el LoginController lo dejamos tal como está.

– Ahora ya podemos crearnos las vistas de estos controladores. Tenemos que crearlas vacías y sin modelo:

View post on imgur.com

– Seguidamente, accedemos a la carpeta “Models” y creamos una clase nueva. Se llamará por ejemplo “Usuario”

View post on imgur.com

– Dentro de la clase Usuario añadimos los siguientes atributos con sus respectivos métodos:

View post on imgur.com

– Una vez que hemos escrito dichos métodos, nos vamos al “Index.cshtml” del LoginController y creamos una vista de formulario de la siguiente manera:

View post on imgur.com

– Volvemos al LoginController y añadimos otro ActionResult con los siguientes métodos y el siguiente atributo:

http://i.imgur.com/IpvFL3v.jpg

– Generamos nuestro identity dentro del if con dos variables: iden y prin. Dentro de la variable iden tenemos que crearnos un GenericIdentity para determinar la identidad de la persona, es decir, sus datos personales. En la variable prin lo que hacemos es crear un objeto que va a almacenar toda la información:

View post on imgur.com

– Creamos nuestro modelo de error, para que la aplicación nos diga si hemos puesto bien o mal nuestras credenciales:

View post on imgur.com

– A continuación, devolvemos un return RedirectToAction del index.cshtml en nuestro controlador HomeController:

View post on imgur.com

– No debemos olvidarnos de aplicar un ValidationSummary al index.cshtml del LoginController si queremos que nuestra aplicación nos diga si nos hemos autenticado correctamente:

View post on imgur.com

– Volvemos a nuestro LoginController para aplicar el siguiente código:

View post on imgur.com

Lo que nos hace el Thread.CurrentPrincipal es crearnos el hilo donde estamos ejecutando actualmente la aplicación. El FormsAuthentication sirve para decirle al sistema si queremos que nos recuerde o no para las siguientes visitas en la página, es decir, podemos guardar o no una cookie de autenticación en función de si le pasamos un true o false al SetAuthCookie

View post on imgur.com

– ¡BIEN! Ya tenemos creada nuestra aplicación de autenticación simple. Lo bueno que tiene este sistema es que el 90% de su código es reutilizable, por tanto, si queremos implementar este sistema en nuestra aplicación lo único que deberíamos de modificar sería nuestro webconfig, tanto en las etiquetas <appsettings> como en <system.web>

Espero que os haya sido de utilidad. ¡Muchas gracias y hasta pronto!

 

Autor: Álvaro Ramiro Ledesma, alumno del curso MCSD Web Applications + MCSD Sharepoint Apps

Centro: Tajamar

Año académico: 2015-2016.

Enlace a GitHub: https://github.com/alraled/Autenticacion-Personalizada