我们在项目中使用Microsoft.AspNet.Identity v1.0.0.0。我们必须从数据库中永久地删除我们的应用程序用户(仅使它们成为IsDeleted = true)。每件事都适用于此,但是当我们想要创建具有相同用户名的新用户时,它也会检查IsDeleted。我们希望在这种情况下它不会检查IsDeleted用户。
有没有办法覆盖此场景的公共虚拟Task CreateAsync功能?
您的帮助对我非常有帮助。 提前致谢 阿希什
答案 0 :(得分:0)
如果您想释放用户名以供他人使用,您可以在删除用户时进行修改。
让它成为独特的东西,或许:"{user}_deleted_{guid}"
。用户的电子邮件仍然是完整的,您可以使用相同的电子邮件拥有多个用户条目,这样就不会有问题。
此外,最好存储DeletedDate
属性而不是IsDeleted
属性。它在功能上是等效的(只检查它是否为空),但它也免费为您提供一些附加信息!将其与DeletedBy
列结合起来,以跟踪是谁做的。
完成后,您可以创建一个自定义UserStore
,它不会在结果中返回已删除的用户。您可以在此问题Adding soft delete to Identity users table