Ron*_*rby 11 asp.net visual-studio-2013 asp.net-mvc-5 asp.net-identity
我正在修补最近使用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>界面的成员.
我在这一点上得出的结论是,如果你想要它以及你想要什么,它就可以实现,只有你的应用程序代码或未来的用户管理库才会调用它.
删除用户帐户
在 1.0 中,如果您必须删除用户,则无法通过 UserManager 来完成。他们现在已经在 2.0 中修复了这个问题:
var result = await UserManager.DeleteAsync(user);
Run Code Online (Sandbox Code Playgroud)
请参阅http://blogs.msdn.com/b/webdev/archive/2014/03/20/test-announcing-rtm-of-asp-net-identity-2-0-0.aspx
我们刚刚耗尽了时间来完成 1.0,它将作为其余管理相关 api 的一部分添加到 Update 1 中,例如 UserManager 上的 IQueryable Users 属性。(它已经在 nightly 1.1-alpha1 包中实现)
| 归档时间: |
|
| 查看次数: |
6039 次 |
| 最近记录: |