如何在新的ASP.NET身份系统中获取用户的密码?或者如何在不知道当前密码(用户忘记密码)的情况下重置?
我正在修补最近使用Visual Studio 2013进行RTM的新身份验证功能.
在实现自定义UserStore时,我正在查看包装盒中附带的UserStore的反编译源Microsoft.AspNet.Identity.EntityFramework.UserStore<TUser>.我注意到不支持删除用户的方法:
public class UserStore<TUser> : IUserLoginStore<TUser>, IUserClaimStore<TUser>, IUserRoleStore<TUser>, IUserPasswordStore<TUser>, IUserSecurityStampStore<TUser>, IUserStore<TUser>, IDisposable where TUser : IdentityUser
{
// other stuff omitted
public virtual Task DeleteAsync(TUser user)
{
throw new NotSupportedException();
}
}
Run Code Online (Sandbox Code Playgroud)
那很奇怪不是吗?为什么删除不支持的用户?
我承认我记不起我编写的生产系统硬删除的用户记录,但我不明白为什么不支持此功能.
是否存在技术原因,或仅仅是因为微软认为删除用户记录是"坏"并将其作为开发人员覆盖该方法的练习?
为了了解ASP.NET团队的想法,我搜索了框架用法DeleteAsync(TUser user).框架中的任何内容似乎都没有调用它.所以,似乎他们可以完全离开IUserStore<TUser>界面的成员.
我在这一点上得出的结论是,如果你想要它以及你想要什么,它就可以实现,只有你的应用程序代码或未来的用户管理库才会调用它.