如何禁止同一帐号重复登录?

sukaru 2005-05-13 10:09:09
如题,怎样禁止同一个帐号在同一个时间段内在两抬机器上同时登陆?也就是说某个用户已经登陆了,那么他就不能在任何别的地方再次登陆了,除非他关闭自己的浏览器或者退出登陆。
...全文
1004 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywcyj 2005-06-05
  • 打赏
  • 举报
回复
up
brando_beat 2005-05-16
  • 打赏
  • 举报
回复
我不是说了吗?
使用守护线程来判断是否掉线,你看看这文章
http://dev.csdn.net/develop/article/65/65215.shtm
sukaru 2005-05-16
  • 打赏
  • 举报
回复
是啊,我的目的也是想问用户非正常退出的时候怎么处理?正常退出当然有很多方法可以实现,基本没什么难度,我也不会来问啦。
YINYOUDESHIREN 2005-05-14
  • 打赏
  • 举报
回复
这个问题 前些日子 我试过了 最后 还是没能解决 关键的问题所在 是用户非正常退出的时候 如何判断 同事用JSP实现了这个功能 用的是破坏Session 如果用户非正常退出那么 就把该用户卡在里面 等Session超时 可是用C# 不会实现 关注这个问题 顶
quakecs 2005-05-14
  • 打赏
  • 举报
回复
同意 brando_beat(Eの懒龙) 的观点。
其实问题的关键不在于用什么方式保存在线用户的数据,
而是如何判断用户已经注销。
rusheagle 2005-05-14
  • 打赏
  • 举报
回复
mark
brando_beat 2005-05-14
  • 打赏
  • 举报
回复
晕倒偶
你们用数据库判断的,还有用session来判断的,
还有datatable的,
你们告诉我如果网页不正常关闭和注销,怎么修改数据库状态和session值。
还有人在说在session_end里面加代码。
负责点,在直接关闭的情况下面是不执行session_end的,非要到时间过期才能执行。
那么这段时间里面怎么处理用户已经logout,但是不能登陆吧。
Cry_Out 2005-05-13
  • 打赏
  • 举报
回复
mark
brando_beat 2005-05-13
  • 打赏
  • 举报
回复
cache
不方便,他和session一样也有超时时间的,也就是说如果用户不是正常关闭页面,cache还是在服务器上面存在的。造成的结果是人已近退掉了,还是要等到cache超时后才能登陆。

通过客户端判断客户是否在线不切实际,
首先有很多种情况造成无法判断用户是否离线,
比如
1.画面的迁移。
2.在任务栏上点击右键关闭。
3.系统崩溃。
4.掉电现象。
无法解决。
使用session_end 事件不能保证上述的情况将用户的数据库状态改变回来。

解决方法:
首先通过客户端的页面添加一个iframe,装载一个自动刷新的页面,每隔XX秒更新一下他的KEY对应的服务器上面的表SINGLETEST表里面的在线时间,就表示他仍然在在服务器端,建立一个守护线程,每隔固定时间就运行一遍,然后从数据库中读出当前所有在线用户列表中用户,使用KEY到服务器中的SINGLETEST表里面的在线时间,和当前时间比较,如果时间间隔超出了规定的时间,则将该用户从数据库中在线名单中删除,这样就可以做到检测用户是否在线了。

可以使用多种方式记录在线时间,不一定使用数据库方式,可以使用数组方式。
在服务器上可以建立守护线程,webService,使用Application 方式也可以。
loneghost 2005-05-13
  • 打赏
  • 举报
回复
cache不是很方便么?
建议使用Cache久可以了
hedonister 2005-05-13
  • 打赏
  • 举报
回复
利用Cache防止同一帐号重复登录
http://www.cnblogs.com/Hanks/
tengfly 2005-05-13
  • 打赏
  • 举报
回复
to:chsl918
用户注销后,应怎么删除掉该用户的登录信息,如果写代码应该写在那个事件中?
chinawn 2005-05-13
  • 打赏
  • 举报
回复
net_lover(孟子E章) ( )说的好
J2ee_Goto 2005-05-13
  • 打赏
  • 举报
回复
真的有这样的asp服务器!!!
asp和asp.net服务器 50mb 25元/年
我看到了一个网站 50MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才25元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com 他们的IP 是 211.144.143.13 国务院-国研机房的!
希望能对大家有帮助
孟子E章 2005-05-13
  • 打赏
  • 举报
回复
http://sz.luohuedu.net/xml/ShowDetail.asp?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168
网淘那些事 2005-05-13
  • 打赏
  • 举报
回复
在global中的Application中设一张表记下该用户的id每次登录时查询该表,如果有该用户的id,则表示该用户已登陆,没有就没登陆,容许登陆.大体思路如此.
menglionel 2005-05-13
  • 打赏
  • 举报
回复
Session肯定是不行的,因为它是客户端的,应该放到Application对象里
lovefootball 2005-05-13
  • 打赏
  • 举报
回复
放在session里就行吧,登陆的时候判断session里是否该用户已经存在
chsl918 2005-05-13
  • 打赏
  • 举报
回复
使用Application对象,或者做一个全局变量的ArrayList,保存已经登录人的标识。每次登录判断这个全局变量是否包括登录标识。注销后删除全局变量中的相关信息。
liangfengxx 2005-05-13
  • 打赏
  • 举报
回复
mark一下,方便以后查找
加载更多回复(6)

62,074

社区成员

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

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

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

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