我正在尝试使用最近在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();
}
}
这很奇怪,不是吗?为什么不支持删除用户?
我承认我记不起来我写过的任何一个生产系统会硬删除用户记录,但我不明白为什么不支持这个功能。
是因为技术原因还是因为微软认为删除用户记录是“不好的”,所以将其留给开发人员覆盖该方法呢?
更新
为了理解ASP.NET团队的想法,我搜索了DeleteAsync(TUser user)
的框架用法。似乎没有任何东西会调用它。因此,它们完全可以省略IUserStore<TUser>
接口中的该成员。
我的结论是,如果您需要并且愿意,可以实现它,以及如何实现它。它只会被您的应用程序代码或未来的用户管理库调用。
DeleteAsync
将失败。 - iCollect.it Ltd