Ir al contenido principal

Seguridad en ASP.Net Identity 2.0 con Webforms Parte 1



¡Saludos colegas desarrolladores y afines! En esta ocasión quiero compartir con Ustedes un pequeño tutorial para trabajar con ASP.Net Identity 2.0 en Webforms. Este creo que será quizás uno de los más complicados de hacer, así que tenedme paciencia. Planeo hacer de esta entrada la primera de varias partes.

Como siempre me gusta indicar de donde me basé para escribir el post y fue de ACÁ  hay que dar el reconocimiento a la autora original: Raquel Soares De Almeida, es lo justo, claro yo simplemente digiero un poco el post y lo entrego a Ustedes con algunos detalles que el autor original pudo obviar por razones diversas.

En este post en particular voy a ir a lo básico, crear el proyecto desde cero.

1.- Comenzamos con el clásico menú Archivo -> Nuevo -> Proyecto.



2.- Continuamos con la siguiente pantalla donde simplemente seleccionamos bajo la opción de plantillas a la izquierda Visual C#, luego Web y por último ASP.Net Web Forms Application (claro está además el nombre y ruta de la solución)


3.- Luego en esta pantalla, la cual es fundamental para nuestro post notemos varios detalles:



- Primero selecciono un template vacío (vamos, que se ha descubierto que el desarrollador especie lomo plateado trabaja con proyectos de .net vacíos lo vi en Discovery Channel)

- Segundo noten que hay una opción que indica "Authentication: No Authentication" el cual es fundamental mantener así ya que configuraría nuestro site con la autenticación por default y precisamente no deseamos eso ahora.

Bien aclarado esto tenemos entonces nuestra pantalla con un hermoso site tan vacío como el estómago de un desarrollador a las 9 de la noche.

4.- Ahora tenemos que adicionar el paquete de referencias correspondiente y esto lo haremos mediante el editor de paquetes de NuGet, hay dos formas de hacerlo: una es mediante líneas de código (mi favorito) y el otro mediante el gestor de paquetes. En esta ocasión lo haré desde el gestor.


5.- Una vez hecho click en el menú correspondiente procedemos a buscar nuestro paquete y para ello tipeamos "Identity" en nuestra caja de texto y preferiblemente seleccionamos "Todo" de la lista de selección "Origen del Paquete".



Una vez allí seleccionamos entonces el Microsoft.AspNet.Identity.EntityFramework, verificamos la versión en la parte inferior de la pantalla y del lado derecho lo aplicamos a nuestro proyecto haciendo click en el checkbox correspondiente y luego en "Instalar"

Ya con estas configuraciones básicas terminadas procedemos entonces a lo que nos interesa.

6.- Adicionamos un webform y lo llamaremos Register.aspx, en el html de la página adicionamos los siguientes elementos: Tres cajas de texto (username, password y confirmar password.)



Nuestra página debería lucir así


Noten que en el Button hay el llamado a un evento CreateUser_Click, este método debe llevar el siguiente código

¡Importante! Deben hacer referencias a las siguientes librerías:
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

7.- A continuación, procedemos a configurar el acceso a la base de datos. Para ello configuramos el archivo Web.Config y adicionamos el connection string al repositorio de datos correspondiente


Es importante que tengan en consideración varias cosas respecto al Web.Config, la primera es que no lo alimentes luego de las 12 de la noche, ya en serio, la primera es que elementos como <connectionStrings> y <appSettings> por mencionar los más comunes siempre pero siempre van dentro del elemento padre <configuration>
 
Sé que está de más decirlo, no me odien por colocar usuario y password de la BD en el connection string así que bajen sus antorchas y tridentes, lo hago solo por cuestiones didácticas, además todos lo hemos hecho alguna vez.

8.- definimos nuestra página Register.aspx como página de inicio de nuestra solución y Ctrl + F5 para correr lo que acabamos de codificar.

En nuestro entorno de prueba ejecutamos nuestro site y adicionamos algunos datos dummy, los resultados deberían ser los siguientes:



¡Y aún hay más! Si intentamos repetir el usuario Identity nos dará un mensaje de error (en inglés, pero se puede cambiar, luego les enseño como, palabra) indicando que ese login ha sido registrado previamente.

Ya para finalizar esta primera parte (de unas cuantas) ya que Identity da mucha pero mucha tela para cortar, revisen en su repositorio de base de datos y hallarán nuevas tablas, es similar a lo que hacía .Net con Membership donde se registran los usuarios, los roles y la relación entre usuarios y roles, luego les enseño como jugar con eso.


Espero que hayan disfrutado esta breve introducción a AspNet.Identity.EntityFramework y como siempre les digo: Happy Coding!!!

Comentarios

Entradas populares de este blog

Como trabajar con decimales en ASP.Net MVC 5

Saludos a todos, este blog viene como una mezcla de varias cositas, es un experimento ya que peculiarmente he notado que casi no hay blogs dedicados a tips de programación de .Net en español y ciertamente la barrera de idiomas afecta de alguna manera u otra al desarrollador que busca una solución a sus problemas y la otra vertiente es que simplemente deseo ayudar, ayudar a quienes duran horas o días estancados en problema que quizás se podía resolver en pocas líneas de código, así que ¿Por qué no compartir las experiencias vividas para que otros no tengan tan cuesta arriba resolver alguna dificultad? Esta es mi primera entrada y espero que la disfruten. La pesadilla de todo desarrollador, trabajar con elementos globalizados como fechas y números con decimales, como todos bien saben este siempre es un tema que siempre trae algún que otro problema y que incluso puede quitar horas o días resolverlo, lo bueno es que existen miles de soluciones, algunas requieren líneas de cód...

Seguridad en ASP.Net Identity 2.0 con Webforms Parte 2 (Owin el primo raro de Identity)

Este post es la segunda parte de una serie que planeo dedicar a ASP.Net Identity 2.0, como el post anterior este post está basado en ÉSTE  y fue creado por: Raquel Soares De Almeida. La razón de hacer una recopilación de este tema basado en algo ya publicado es que el post original esta en Ingles y quizás a algunos se le complique por la barrera del idioma, otra razón es que yo adiciono pequeños detalles que considero necesario reflejar y lo último es que son necesarias estas dos primeras partes para futuras publicaciones que verán acá prontamente, como aplicar filtrados por roles y asignar roles a usuarios, con esto aclarado comencemos nuestro post. Todos tenemos un primo raro que es algo excéntrico, Identity tiene el suyo y tiene hasta nombre, se llama Owin, el primo Owin.  El primo Owin es una capa intermedia basada en cookies mediante forms. Realmente es muy pero muy interesante, Owin combinado con Identity hacen muy bien la tarea de darnos la seguridad ne...