Principales respuestas
Como usar el UserManager.CreateAsync en Asp MVc y DDD

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!!!
- Editado JoséLuisGarcía martes, 23 de febrero de 2016 15:53 ed
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- Marcado como respuesta JoséLuisGarcía domingo, 6 de marzo de 2016 23:06
-
>>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- Marcado como respuesta JoséLuisGarcía domingo, 6 de marzo de 2016 23:06
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- Marcado como respuesta JoséLuisGarcía domingo, 6 de marzo de 2016 23:06
-
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!!!
-
>>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- Marcado como respuesta JoséLuisGarcía domingo, 6 de marzo de 2016 23:06
-
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!!!
-
>>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