我们在项目中使用Microsoft.AspNet.Identity v1.0.0.0。我们必须软删除我们的应用程序用户(仅使他们IsDeleted =true
),而不是从数据库中永久删除。
一切都与此有关,但是当我们想要使用相同的用户名创建新用户时,它也在检查IsDeleted
用户。我们希望在这种情况下它不会检查IsDeleted
用户。
对于这种情况,有没有办法覆盖public virtual Task<IdentityResult> CreateAsync
函数?
如果要释放用户名供其他人使用,只需在删除用户时对其进行修改即可。
也许让它成为独特的东西: "{user}_deleted_{guid}"
.用户的电子邮件仍将是一致的,您可以使用同一封电子邮件输入多个用户条目,因此这不是问题。
此外,最好存储DeletedDate
属性而不是IsDeleted
属性。它在功能上是等效的(只需检查它是否不为空),但它也免费为您提供了一些附加信息!将其与DeletedBy
列相结合,以跟踪谁做的。
完成此操作后,您可以创建自定义UserStore
,该不会在结果中返回已删除的用户。可以在此问题"将软删除添加到标识用户"表中阅读有关此内容的详细信息