none
Como usar el UserManager.CreateAsync en Asp MVc y DDD RRS feed

  • Pregunta

  • Hola:

     Estoy tratando de implementar el acceso por medio del login a una aplicación echa en ASP MVC, en esta aplicación se manejaran roles de acceso los cuales solo serán tres, había pensado crear dos tablas llamadas Usuarios, Roles mediante el cual y por medio de consultas linq haría el acceso a la base de datos y obtendría la información para hacer el login pero no se que es lo que se deba de considerar en ambientes web a parte de la encriptacion de los passwords para mantener la seguridad de la aplicación.

    En una aplicacion similar e visto que usan la clase UserManager del espacio de nombres using Microsoft.AspNet.Identity pero francamente no se como es que funciona.

    En esta aplicacion de ejemplo veo que para registrar el usuario usan:

     [HttpPost]
            [AllowAnonymous]
            [ValidateAntiForgeryToken]
            public async Task<ActionResult> Register(RegisterViewModel model)
            {
                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser() { UserName = model.UserName };
                    var result = await UserManager.CreateAsync(user, model.Password);
                    if (result.Succeeded)
                    {
                        var userId = user.Id;
                        var userName = user.UserName;
                        userProfileService.CreateUserProfile(userId);
                        await SignInAsync(user, isPersistent: false);
                        
    He tratado de descifrar como es que funciona el método CreateAsync pero hasta ahora no logro entender del todo su forma de uso.

    Agradezco cualquier información que puedan proporcionarme.


    Saludos desde Monterrey, Nuevo León, México!!!


    martes, 23 de febrero de 2016 15:52

Respuestas

  • hola

     >>En una aplicacion similar e visto que usan la clase UserManager del espacio de nombres using Microsoft.AspNet.Identity pero francamente no se como es que funciona.

    si usas Identity de asp.net mvc vas a tener que respectar la estructura del modelo que este define, puedes extenderlo pero ya define como seran las tablas

    http://www.asp.net/identity

    veras que este hace uso de Entity Framework

    Cutting Edge : A First Look at ASP.NET Identity

    este define clases como ser IdentityUser que tu puedes extender

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 23 de febrero de 2016 16:46
  • >>lo que quisiera saber es como lograr que identity llegue hasta la capa de persistencia

    es que identity no tiene que llegar a ningun lado

    puedes usar el contexto de indentity define con

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
    }

    en al capa que tu necesites

    en los ejemplos seguro esto lo usa directo en los controller, pero tu puede accederlo desde donde necesites si referencias mediante nuget la clase Microsoft.AspNet.Identity.EntityFramework



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 23 de febrero de 2016 17:17

Todas las respuestas

  • hola

     >>En una aplicacion similar e visto que usan la clase UserManager del espacio de nombres using Microsoft.AspNet.Identity pero francamente no se como es que funciona.

    si usas Identity de asp.net mvc vas a tener que respectar la estructura del modelo que este define, puedes extenderlo pero ya define como seran las tablas

    http://www.asp.net/identity

    veras que este hace uso de Entity Framework

    Cutting Edge : A First Look at ASP.NET Identity

    este define clases como ser IdentityUser que tu puedes extender

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 23 de febrero de 2016 16:46
  • Hola Leandro:

     Realmente no veo problemas en usar las clases que vienen con Identity, lo que quisiera saber es como lograr que identity llegue hasta la capa de persistencia, en el fragmento de código que les pongo veo que desde el controller llaman a CreateAzync pero este método no logro depurarlo para ver como es que se comunica con las capas restantes hasta llegar a persistencia.

    Gracias por el link.


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 23 de febrero de 2016 17:02
  • >>lo que quisiera saber es como lograr que identity llegue hasta la capa de persistencia

    es que identity no tiene que llegar a ningun lado

    puedes usar el contexto de indentity define con

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
    }

    en al capa que tu necesites

    en los ejemplos seguro esto lo usa directo en los controller, pero tu puede accederlo desde donde necesites si referencias mediante nuget la clase Microsoft.AspNet.Identity.EntityFramework



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 23 de febrero de 2016 17:17
  • Ahhhh! ok, entonces esto puede ir en mi capa de persistencia y enviar la información desde las demás capas tal cual se realiza con las otras entidades.

    Existen algunas consideraciones que se deben de tomar antes de usar Identity?


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 23 de febrero de 2016 17:36
  • >>entonces esto puede ir en mi capa de persistencia y enviar la información desde las demás capas tal cual se realiza con las otras entidades.

    claro que puedes, en definitiva es EF

    >>Existen algunas consideraciones que se deben de tomar antes de usar Identity?

    no se me ocurre cual podrian ser, si puedes desde la capa de persistencia referenciar las clases de owin para implementar este mecanismo de seguridad no tendrias ningun problema

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 23 de febrero de 2016 17:45