viernes, 18 de mayo de 2018

Crear una aplicación de Microsoft MVC core 2.0 con identity

Primero vamos a ir a Visual Studio 2017 y crear una aplicación en el folder Web.  



Cuando creamos el proyecto le debemos dar el nombre (en mi caso "IdentityTest") y buscamos el directorio donde vamos a guardar nuestro proyecto.  



Luego en la siguiente pantalla seleccionamos el proyecto de tipo Web Application. Luego debemos dar clic en el botón "Change Authenication". Como podemos observar antes de cambiar esta opción en el área que dice Athentication dice "No Authentication 


En la opción Change Authentication debemos seleccionar "Individual User Accounts". Después de esto damos clic en Ok. 

Como vemos el texto del área de Authentication cambia por "Individual User Account" .

Ahora lo que tenemos que hacer es dar clic en el botón de ok para que VS2017 termine de configurar el proyecto 

Cuando VS2017 termina de crear nuestro proyecto debemos ir al archivo "appsettingsjson". Cuando abrimos el archivo vamos a ver un connectionString que se llama default. 


Se tiene que cambiar este connectionString con el de su base de datos. No es necesario tener los objetos de identity en la base de datos. Estos se pueden crear con el proceso que vamos a ver en unos momentos.  

Ahora vamos a ir al Startup.cs class para ver la configuración básica que se creó para la autenticación de nuestros sistemas.  


public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity<ApplicationUser, IdentityRole>()
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();

            services.AddMvc()
                .AddRazorPagesOptions(options =>
                {
                    options.Conventions.AuthorizeFolder("/Account/Manage");
                    options.Conventions.AuthorizePage("/Account/Logout");
                });

            // Register no-op EmailSender used by account confirmation and password reset during development
            // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=532713
            services.AddSingleton<IEmailSender, EmailSender>();
        }

Como se puede observar se está usando el DefaulConnection para identificar cual es la base de datos que deseamos usar.  

También dentro de nuestro método ConfigurationServices podemos agregar algunas configuraciones adicionales a nuestro sistema de autenticación. Podemos agregar la longitud de la contraseña, etc.  

Ahora si estamos listos para correr nuestra aplicación.  cuando está corriendo la aplicación nos vamos a ir a login para ingresar a nuestra app. A continuación, nos dirigimos a la página para registrar usuarios y tratamos de crear un usuario. En ese momento vamos a ver la siguiente página que parece un error.  

Damos clic en el botón que dice Apply Migrations con esto creamos los objetos para el servicio de identity en nuestro servidor. Cuando se termina el proceso de migración podemos refrescar la página y todo va a funcionar bien. Además, si vamos a la base de datos vamos a poder ver los objetos creados.  


Con esto ya tenemos listo nuestro sistema mvc core 2.0 usando identity Ahora puede crear y autenticar sus usuarios.

Puede encontrar el ejemplo aquí   Ejemplo

Etiquetas: , ,