注册 | 登录   
当前位置:网站首页 > 资源显示

aspASP限制同一用户名同时两个人登陆的方法(讨论)

发布时间:2017/5/3 23:41:41 / 浏览:709
在用ASP给客户做一个OA办公系统时,客户要求每个管理员帐号只能允许一个人登陆,当有多人使用同一个帐号登陆时,就提示非法登陆或帐号被盗用的信息。

想了几套方案,比如新建一个用户在线表,限制同一个帐号不能同时在线。
但一旦用户不按正常方法退出,在线列表将不能正确更新,同一用户想在二次登陆时就不允许了。

最后想到了一个最简单的解决办法,那就是采用随机码机制,在用户登陆时,把登陆时的随机码写入用户数据库字段truepass和写入session,然后进行后台每页操作时判断用户名和写入session里的随机码是否匹配,如果不匹配,证明有另一个人使用了该同名用户进行登陆,并刷新了用户表的随机码,导致验证无法通过。

这个方法是不是很简单和实用呢:)

其实楼主可以用一个表(上线用户表)来完成,就是用户登录时,用这个表来记录,哪些用户登录,退出时,可以取消。这里要做的就是在写一个文件,让每一个页面都调用它,用来记录用户的最后的活动时间。和判断在上线用户表里是否有这个用户。 
这样就好办多了。如果一个用用户登录了,哪么这个表里就有它的信息,如果另一个用户再用这个用户名登录的话,哪么就会提示它已经登录。 
这里有一个问题就是当用户没有点退出,这样就让每一个新用户登录时,判断一下表里用户的最后活动时间与当前时间相比,如果大与20分钟就删除就完了。 


在数据库中保存一下登陆记录,每个用户最多记五条.同时也保存活动时间,每次访问页面刷新一下活动时间,设定超时时间,假如有一个时间超时,从数据库中删除.



偶个人感觉没有个完好的解决办法 
主要是关闭浏览器或非法关机(重启)之类得不到好的解决,有人说如果叉掉ie的关闭按钮,在事件onbeforeunload中向服务器发出请求来更改登陆信息,这样是可以解决,但用户登陆后可能开了好几个窗口,关掉一个,其他就用不了. 

非法关机没办法解决的 

关注,继续看讨论... 
___________________________________________________________________ 
加一张Online表   用来记录当前在线的用户,用XMLHTTP割30秒刷新一次最后在线时间,使其等于当前服务器时间 
—————————————————————————————— 

这已经解决了关闭浏览器与非正常退出的问题了
您尚未登录,暂时无法查阅资源!立即登录
插播广告区
您尚未登录,暂时无法发表评论。立即登录
暂无任何评论
广告区
CopyRight © 2017 www.kaifaku.cn All Rights Reserved - 版权所有 © 开发库 (所有资源来源于实战项目,拿来即用)
付费资源请联系 QQ:2633993818 / E-MAIL:2633993818@qq.com 本站免费分享资源不提供免费咨询