我是这里的新人。我有这样的问题:我在 ASP.NET (C#) 中创建了一个注册页面,允许访客可以在我的网站上注册一个帐户。所有用户在使用我的网站之前必须激活他们的帐户,如果 15 分钟后,用户没有通过邮件激活帐户 => 从数据库中删除该用户,我的问题是如何自动执行?
问问题
224 次
1 回答
1
我不会使用计时器来删除用户,而是使用更传统的方法来为用户(或者可能是他们的密码)设置过期时间。也就是说,当他们第一次注册时,指定当前时间后 15 分钟的过期时间(例如,ExpirationDate
在用户表的列中)。在您的身份验证过程中,逻辑应该验证用户的 ID 没有过期。
使用计时器的问题是很多事情都可能出错。例如,如果您的应用程序重新启动,任何活动的计时器都将丢失。它很脆。这也有点像用锤子杀死苍蝇。不必确保在 15 分钟后立即从数据库中删除某人的用户记录。只需要确保他们在那之后无法进行身份验证。因此,以最简单的方式使设计与业务目的相匹配。如果你真的想删除记录(而不是说,让他们有机会在重置密码或其他东西后重试),那么你可以通过一些外部维护过程来做到这一点。
于 2012-05-06T18:40:07.757 回答