rolemanager net management identityrole custom asp c# asp.net asp.net-mvc asp.net-mvc-5

c# - net - MVC 5 Custom UserStore



identityrole (1)

Esto en realidad no es tan difícil.

Cree una nueva clase que implemente la interfaz IUserStore.

public class MyUserStore : IUserStore<User> { }

... luego implementa sus métodos. Creo que hay 5 o 6 para empezar, que tienen que ver con la creación / actualización / eliminación / búsqueda de usuarios. Si está utilizando el marco de entidades para sus entidades de usuario, simplemente el constructor inyecta una instancia de este en su almacén de usuarios.

public class MyUserStore : IUserStore<User> { private readonly MyDbContext _dbContext; public MyUserStore(MyDbContext dbContext) { _dbContext = dbContext; } }

Luego, en los métodos de la interfaz, simplemente delegue a su dbcontext:

Task IUserStore<User>.CreateAsync(User user) { _dbContext.Set<User>().Create(user); return Task.FromResult(0); }

Luego hay muchas otras interfaces opcionales que puede implementar para admitir funciones adicionales. Por ejemplo, si desea que su UserStore pueda manejar el cifrado de contraseñas por usted, implemente IUserPasswordStore:

public class MyUserStore : IUserStore<User>, IUserPasswordStore<User> { }

... y así sucesivamente para las otras interfaces como IUserRoleStore, etc.

Lo que realmente podría ayudar es una herramienta de descompilación como .NET Reflector o la función Navigate To Decompiled Sources de ReSharper. Si descompila el UserStore predeterminado en la biblioteca Microsoft.AspNet.Identity.EntityFramework, puede ver cómo lo hicieron. Algunos de los códigos descompilados pueden ser difíciles de leer debido a que algunos de los métodos son asíncronos, pero debería obtener la esencia de los mismos.

Necesito crear un UserStore personalizado (básicamente porque tengo algunos requisitos que no forman parte del marco por defecto) pero no puedo encontrar ninguna documentación en ningún lugar sobre cómo hacer esto.

He visto dos piezas de información que están cerca:

  1. http://kazimanzurrashid.com/posts/implementing-user-confirmation-and-password-reset-with-one-asp-dot-net-identity-pain-or-pleasure - que parece aplicarse a la edición anterior :(
  2. y MVC 5 IoC y autenticación : que es similar a lo que necesito pero necesito ver un código :(

Básicamente, necesito saber cómo crear un usuario y cómo iniciar sesión. El resto lo puedo averiguar. Supongo que el problema principal es el manejo de contraseñas, etc.

¿Alguien sabe de alguna documentación en algún lugar que pueda ayudarme? O si hay un desglose en el UserStore predeterminado y sus métodos internos serían excelentes (me podría adaptar a partir de ahí).