如何较好解决一个帐号不能同时登录

tianweima 2004-06-08 01:10:04
如题:
如该帐号已登录,就不能再登录;即帐号不能重复登录。
但不管是正常注销还是直接关闭或断电都要在5分钟内识别出已下线。
最佳方案100分,请各位老大帮帮忙。
...全文
484 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianweima 2004-06-09
  • 打赏
  • 举报
回复
谢谢,先试试。
Miracle 2004-06-09
  • 打赏
  • 举报
回复
回复人: tianweima(风雨人) ( ) 信誉:100 2004-06-09 16:12:00 得分: 0


Miracle(新一代的开山怪) :
1、本人这个网站是做电影点播的,所session的timeout不能小于1个半小时;

所以我让你在设置超时为5分钟以后,还要在页面上开一个小小的Frame,其中的网页通过<meta>标记每过1分钟左右刷新一次自身,通知服务器“我还没掉线”。

2、现在不能解决的是如何在5分钟内识别出用户已断线,不管是关闭窗口还是断电等等。

如果用户关闭窗口或断电,那么上面说的每过1分钟左右刷新一次自身的Frame自然就不会在刷新了,这样就造成5分钟以后超时,从而能够判断出用户已经断线。如果用户未断线,有那个Frame在,就会不断刷新访问,不至于断线。

aivii 2004-06-09
  • 打赏
  • 举报
回复
up
andrawsky 2004-06-09
  • 打赏
  • 举报
回复
我也作过一个这样的网站就是用每个页面都包含一个大小为0的iframe,在这个iframe里调用更新时间的页面(自动刷新),这样的话就不会出现没有关闭页面而不点击时被认为是退出的情况
9728 2004-06-09
  • 打赏
  • 举报
回复
用session跟定时刷新去判断是否超时还说得过去,如果用SESSION来判断重登录就不行了吧???重登录不一定是同一部机呀!application倒可以去判断重登录。
tianweima 2004-06-09
  • 打赏
  • 举报
回复
那太占用资源了吧,我只在一个页面上做就常出错了,要是所有页面都做那还了得。
bobowu 2004-06-09
  • 打赏
  • 举报
回复
同意天黑的方法,不过可以用每个页面都包含一个大小为0的iframe,在这个iframe里调用更新时间的页面(自动刷新),这样的话就不会出现没有关闭页面而不点击时被认为是退出的情况
tianweima 2004-06-09
  • 打赏
  • 举报
回复
Miracle(新一代的开山怪) :
1、本人这个网站是做电影点播的,所session的timeout不能小于1个半小时;
2、现在不能解决的是如何在5分钟内识别出用户已断线,不管是关闭窗口还是断电等等。
那位能较详细告诉我application的方法是怎么做的,我没法找到。
whatandwhy 2004-06-09
  • 打赏
  • 举报
回复
建立一个ONLINE表。里面包括用户ID和最后点击时间。用户每点击一下更新最后点击时间。
登陆时用存储过程插入ONLINE表,先判断该ONLINE表是是否存在该用户,
不存在则插入,返回1,存在不插入,返回0;
然后在数据库里建立一个作业,
在CPU空闲时删除最后点击时间+5分钟《当前系统时间的记录。
mywindyboy 2004-06-09
  • 打赏
  • 举报
回复
application啊,
Miracle 2004-06-09
  • 打赏
  • 举报
回复
这个简单,超时设置成5分钟,然后在页面上开一个小小的Frame,其中的网页通过<meta>标记每过1分钟左右刷新一次自身,相当于通知服务器“我还没掉线”。搞定
goody9807 2004-06-09
  • 打赏
  • 举报
回复
在窗体unload 时 给一个变量赋值记下状态

或者存到cookie里
tianweima 2004-06-09
  • 打赏
  • 举报
回复
看了大家的回复,我再说几个重点:
1、本人这个网站是做电影点播的,所session的timeout不能小于1个半小时;
2、现在不能解决的是如何在5分钟内识别出用户已断线,不管是关闭窗口还是断电等等。
iceflylee 2004-06-08
  • 打赏
  • 举报
回复
application
常修溢 2004-06-08
  • 打赏
  • 举报
回复
用session来控制超时问题.在数据库的表中加个字段[判断1/0],判断是否在线
用timeout属性来设置时间.在检查用户名与密码时修改数据库字段.
weiming28cn 2004-06-08
  • 打赏
  • 举报
回复
关闭浏览器时,提交一个隐藏的表单值,来注销用户!
gabriel1 2004-06-08
  • 打赏
  • 举报
回复
to gabriel1(H+W):

正常登录后,>5分钟没有操作,比如第7分钟要有操作,怎样认为?难道还需要重新登录吗?

------------------------------
对,超时了,要重新登陆,很多网站都是这么解决的,当然了,你可以把5分钟时间设置长点。
gxboy 2004-06-08
  • 打赏
  • 举报
回复
web下用这种是很差的设计,影响断线的因素太多,服务器又不能即时检测。

不推荐在web下用这种防止登录的方法。

除非你是写什么江湖类似有经验值的东西。
liuyong_lll 2004-06-08
  • 打赏
  • 举报
回复
一般的建议就是上边所说的数据库表存储的方法是可行的,如果你不在乎服务器资源的浪费,你可以把它间隔时间弄短些......

通常的处理都是这样
yangxingbo 2004-06-08
  • 打赏
  • 举报
回复
建立一表:
id name time
程序启动后,每过5分钟,以当前时间update (time)

只要 对比现在时间和记录里的时间差是否超过5分钟就可以决断是否在线。

我想了5分钟的结果。 给我分啊!!!
加载更多回复(8)

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧