我有一个使用ASP.net身份2.0进行用户管理的网站,还有一些外部身份验证选项(google,facebook等)。
我想让用户选择删除他们的帐户。我在这个答案中找到了一个很好的例子:ASP.NET MVC 5 how to delete a user and its related data in Identity 2.0
但是,我希望限制其他人在删除其帐户时注册旧用户的用户名。但是,如果他们决定重新注册,则应该释放电子邮件。
我想阻止用户ABC删除他们的帐户,然后有人无关使用用户名ABC(这会在我的用例中造成混淆/问题)。
我正在寻找有关如何实施此方法的最佳做法的建议。 ASP身份中是否有任何内置?或者我应该在所有已注册用户名(已删除和活动)的某个位置保留list / sql db,并只是根据此列表检查新用户?
谢谢。
答案 0 :(得分:5)
超简单的方法是简单地不删除用户表中的用户帐户,而是将其标记为已锁定,并将电子邮件地址从其他任何内容更新为其他内容,并将其他敏感字段(如密码)设置为内部默认值。您可能希望减少和/或彻底删除任何权利/角色。
在abc@abc.com的电子邮件帐户上进行替换,使其成为abc#abc.com@deletedaccount.me。
然后你就完成了,不需要任何额外的编码,因为框架将负责其余部分。