MVC 5自定义用户存储

我需要构建一个自定义的UserStore(基本上因为我有一些默认情况下不属于框架的要求)但我无法找到任何关于如何执行此操作的文档。

我看到两条信息很接近:

  1. http://kazimanzurrashid.com/posts/implementing-user-confirmation-and-password-reset-with-one-asp-dot-net-identity-pain-or-pleasure – 这似乎适用于早期版本:(
  2. 和MVC 5 IoC和身份validation – 这与我的要求类似,但我需要看一些代码:(

基本上我需要知道如何创建用户以及如何登录。其余我可以弄明白。 我想主要问题是处理密码等。

有谁知道任何可能对我有帮助的文件? 或者,如果默认的UserStore存在细分,那么它的内部方法会很好(我可以从那里进行调整)。

这实际上并不那么难。

创建一个实现IUserStore接口的新类。

public class MyUserStore : IUserStore { } 

…然后实施其方法。 我认为有5或6个开始,处理创建/更新/删除/查找用户。 如果您正在为您的用户实体使用entity framework,那么只需构造函数将其实例注入您的用户存储实例。

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

然后,在接口方法中,只需委托给dbcontext:

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

然后,您可以实现许多其他可选接口以支持其他function。 例如,如果您希望UserStore能够为您处理密码加密,请实现IUserPasswordStore:

 public class MyUserStore : IUserStore, IUserPasswordStore { } 

…等等其他接口,如IUserRoleStore等。

可能真正有用的是反编译工具,如.NET Reflector或ReSharper的Navigate To Decompiled Sourcesfunction。 如果您在Microsoft.AspNet.Identity.EntityFramework库中反编译默认的UserStore,您可以看看他们是如何做到的。 一些反编译的代码可能难以阅读,因为某些方法是异步的,但你应该得到它的要点。