实现非永久性用户删除的最佳方法是什么?

时间:2010-09-21 20:18:36

标签: design-patterns asp.net-membership

我尝试永远不会从数据库中的重要表中删除实际记录,而是通过将相应字段设置为True将其标记为已删除。但是在成员资格的情况下,这种方法将阻止任何将来的用户重用“已删除”用户的用户名。用户名不会有问题,但如果“已删除”用户决定再次注册并尝试使用同一封电子邮件,该怎么办?由于电子邮件在asp.net成员资格中也是唯一的,因此会抛出电子邮件已被使用的错误(由已删除的帐户)。最好的方法是什么?

提前致谢。

4 个答案:

答案 0 :(得分:3)

我认为使用活跃旗帜效果很好。如果用户停用其帐户并再次注册,则在检查该电子邮件是否已存在后,您可以检查他们是否已设置为无效,然后提供重新启动其帐户。

答案 1 :(得分:1)

也许您需要一个代码路径来重新激活,而不是在删除后创建新帐户。魔兽世界就是这样做的,魔兽世界也不错。

答案 2 :(得分:1)

如果您使用的是SqlMembershipProvider,只需锁定帐户并设置注释即表明锁是永久性的。

这不涉及任何修改,只涉及工作流程调整。

同样,这假设您使用的是股票会员筹码。

答案 3 :(得分:0)

只需将用户名更改为'deleted001'之类的内容即可。很多网站都这样做。

修改
Stefan的答案非常好......除非你希望他们能够基本上从你的网站上删除他们的识别信息。此时您需要重命名用户。