如何在网站上实现自动取消? ASP.NET

时间:2009-07-17 13:35:25

标签: c# asp.net

如何自动删除我网站上的禁令? 当足够多的用户标记另一个用户时,用户将被禁止X段时间。然后在用户名旁边有一个符号,显示他被禁止(在他的所有帖子上,而不仅仅是个人资料页面)。在X时间之后我想要自动解除并且在用户名旁边没有sybol。这样做的好方法是什么?目前我能想到的唯一解决方案是运行一次检查isUserBanned(),以查明用户当前是否应该被解除禁用。

4 个答案:

答案 0 :(得分:3)

将标记实施为“禁止直到”日期/时间设置。

然后,当禁令结束时,它将会过去而不是取消禁令价值。

所以不是这种类型的检查:

IF User.IsBanned THEN

你有这个:

IF User.BannedUntil <= Now() THEN

当然,你必须要么将每个人的BannedUntil标志设置为过去的某种方式,或者在其位置处理NULL / Nothing值。

答案 1 :(得分:2)

在数据库上有一个经常运行的计划任务,并检查[禁止直到日期],与当前日期相比,并将[禁止]标志更新为适当的。

答案 2 :(得分:0)

在您的用户数据中添加字段,以存储他们将被取消禁止的日期时间。在您的视图代码中,如果值为NULL或在过去它们不被禁止,否则如果它在将来被禁止。然后可选择是否实际清除“未经过禁止的”DateTime。

答案 3 :(得分:0)

为了让它更实时,您可以使用一个脚本来检查被禁用的用户并确定他们的时间是否已经结束。

显然,您不希望手动运行此操作,因此可以使用cron作业或计划任务(取决于操作系统)自动执行此操作。让它每小时或每两小时运行一次就足够了。