首页 新闻 会员 周边 捐助

asp.net Forms 身份验证

0
悬赏园豆:5 [已关闭问题] 关闭于 2009-09-01 14:54

用户的在线离线功能。数据表里有2个字段了1是在线,0是离线但是asp.net Forms 身份验证是用cookies的Global.asax里面能获取到cookies失效时间吗或者要怎么样才能当cookies过期时去更新数据库。注:。。我是菜鸟

大佬辉的主页 大佬辉 | 菜鸟二级 | 园豆:261
提问于:2009-08-30 00:17
< >
分享
所有回答(5)
0

根据Cookies失效时间去统计离线在线我觉得不怎么合适。如果客户端的失效时间设置成1个月了,难道你认为他一直在线么?更何况,客户端的变化是不会主动反馈到服务器的,除非再次发出网页内容请求。

是否可以这样,在用户表放一个最后操作的时间,打开或者关闭网页的时候都更新这个字段,统计在线的时候就只要看最后操作时间与现在相差多少来判断是否在线好了。

谦爸 | 园豆:239 (菜鸟二级) | 2009-08-30 00:57
0

应该要用Session的失效时间,再加上用户的最后操作时间来判断此用户是否还在线。

纯属个人意见。

yxy19860811 | 园豆:208 (菜鸟二级) | 2009-08-30 01:11
0

http://msdn.microsoft.com/zh-cn/library/7t6b43z4%28VS.80%29.aspx

如果要判断用户在线状态,可以考虑智能客户端,或者异步刷新页面,定期读取。

还有一种方案

用户每一次活动都会在数据库中留下记录(记录活动时间),如果5分钟没有活动,那么就可以判断该用户离线。这里不用Session的支持!

邀月 | 园豆:25475 (高人七级) | 2009-08-30 13:17
0

每隔一段时间(比如1分钟)请求一次服务器,更新数据库中的记录用户在线的字段,可以判定用户是否在线。

yearN | 园豆:551 (小虾三级) | 2009-08-30 15:41
这样会不会把服务器搞死掉啊。哈哈
支持(0) 反对(0) 谦爸 | 园豆:239 (菜鸟二级) | 2009-08-31 09:16
0

WebForm的这种在线功能很好做的,我们只要用每一次请求维护一张表就可以了,在表中记录用户最好一次操作的时间,5分或10分没有请求就认为你已离线。再操作就需要重新登录了。在WinForm中,客户站端要定时向服务器报告自己还活着,道理是一样的。

伽马科技.攻城师 | 园豆:1303 (小虾三级) | 2009-08-30 15:41
有人做过吗。。
支持(0) 反对(0) 大佬辉 | 园豆:261 (菜鸟二级) | 2009-09-09 17:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册