【发布时间】:2013-10-28 06:35:40
【问题描述】:
我正在修补最近 RTM 与 Visual Studio 2013 一起提供的新身份验证功能。
在实现自定义 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();
}
}
这很奇怪不是吗?为什么不支持删除用户?
我承认我不记得我写过的生产系统硬删除了用户记录,但我不明白为什么不支持此功能。
是否有技术原因,或者仅仅是因为 Microsoft 认为删除用户记录是“不好的”,并将其留作开发人员重写该方法的练习?
更新
为了了解 ASP.NET 团队的想法,我搜索了 DeleteAsync(TUser user) 的框架用法。框架中似乎没有任何东西调用它。因此,他们似乎完全可以将成员从 IUserStore<TUser> 接口中移除。
在这一点上,我的结论是,它可以根据您的需要和您想要的方式实现,并且它只会被您的应用程序代码或未来的用户管理库调用。
【问题讨论】:
标签: asp.net visual-studio-2013 asp.net-mvc-5 asp.net-identity