超时判断的一个方法
2004-08-19 18:48
369 查看
基本思想[/b]
程序中加入一个Timer,每隔一段时间向服务器发送请求,记录用户最后的活动时间。在数据库中加入一个触发器,每当UPDATE在线用户表的时候删除最后活动时间和现在时间差为一定时间的记录,当符合上面条件的记录被删除后,本地记录用户的变量被清空,用户需要重新登陆才能获得自己的权限和操作。
Timer Elapsed代码
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
触发器代码
CREATE TRIGGER modify_state
ON 在线记录 AFTER UPDATE
AS IF UPDATE(最后活动时间)
BEGIN
Delete FROM 在线记录 WHERE DATEDIFF(ss, 最后活动时间, GETDATE()) > 3600
END
第一次POST文章,水平真的有限(才学.net),只是感觉是自己想出来的东西。不知道有没有更好的判断方法,我在网上没有找到,如果哪位不吝赐教,那多谢了
程序中加入一个Timer,每隔一段时间向服务器发送请求,记录用户最后的活动时间。在数据库中加入一个触发器,每当UPDATE在线用户表的时候删除最后活动时间和现在时间差为一定时间的记录,当符合上面条件的记录被删除后,本地记录用户的变量被清空,用户需要重新登陆才能获得自己的权限和操作。
Timer Elapsed代码
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
触发器代码
CREATE TRIGGER modify_state
ON 在线记录 AFTER UPDATE
AS IF UPDATE(最后活动时间)
BEGIN
Delete FROM 在线记录 WHERE DATEDIFF(ss, 最后活动时间, GETDATE()) > 3600
END
第一次POST文章,水平真的有限(才学.net),只是感觉是自己想出来的东西。不知道有没有更好的判断方法,我在网上没有找到,如果哪位不吝赐教,那多谢了