单用户登陆限制(单点登录??)
2013-08-16 11:35
183 查看
思路:
1、用户登陆 --> 检查当前用户Id 在(UserOnline)中是否处于活动状态
如果不处于活动状态则: 记录下当前用户的Sessionid 、用户Id 、LastTime (UserOnline)
如果处于活动状态 :提示该用户已登陆,禁止二次登陆。
2、保持通信 --> 用户登录成功后,在主界面 进行不断回掉(每隔2秒与服务器进行一次通信) 保持用户活动状态,并记录用户最后通信时间(更新LastTime = getdate())
在于服务器通宵时 根据用户Id及当前会话(Sessionid) 判断当前 用户在(UserOnline)中的状态
如果用户处于非活动状态 则:反馈状态0 并 强制页面跳转到登陆页
如果处于活动状态 , 但是 用户Id 和 (Sessionid) 与 (UserOnline)中的 不一致 则属于非法登陆 反馈状态0 并 强制页面跳转到登陆页
3、服务端 (或SQL) 定期对(UserOnline) 进行 检测 清理( 〉10秒 未和服务器进行通信 的用户)
实现:
续:经过为期一个月的应用,该方法存在一个重大问题:
js 限制,因为 异步响应 这里用的是Js实现的,结果,在JS弹窗时,Js默认会阻止其他脚本的执行(即使不在同一页面),
也就是说JS弹窗异步回掉就会停止,这个需要继续研究下去~~~
见谅~
1、用户登陆 --> 检查当前用户Id 在(UserOnline)中是否处于活动状态
如果不处于活动状态则: 记录下当前用户的Sessionid 、用户Id 、LastTime (UserOnline)
如果处于活动状态 :提示该用户已登陆,禁止二次登陆。
2、保持通信 --> 用户登录成功后,在主界面 进行不断回掉(每隔2秒与服务器进行一次通信) 保持用户活动状态,并记录用户最后通信时间(更新LastTime = getdate())
在于服务器通宵时 根据用户Id及当前会话(Sessionid) 判断当前 用户在(UserOnline)中的状态
如果用户处于非活动状态 则:反馈状态0 并 强制页面跳转到登陆页
如果处于活动状态 , 但是 用户Id 和 (Sessionid) 与 (UserOnline)中的 不一致 则属于非法登陆 反馈状态0 并 强制页面跳转到登陆页
3、服务端 (或SQL) 定期对(UserOnline) 进行 检测 清理( 〉10秒 未和服务器进行通信 的用户)
实现:
续:经过为期一个月的应用,该方法存在一个重大问题:
js 限制,因为 异步响应 这里用的是Js实现的,结果,在JS弹窗时,Js默认会阻止其他脚本的执行(即使不在同一页面),
也就是说JS弹窗异步回掉就会停止,这个需要继续研究下去~~~
见谅~
相关文章推荐
- ASP.NET 2.0关于用户登录限制问题实例:防止同一用户同时登陆
- java web相同用户重复登陆,即用户唯一登录,后登陆挤掉先登录的,设置限制用户同时登陆人数
- php用户登陆代码(限制用户错误登录次数)(1/2)
- 如何限制用户只能登陆域|活动目录域策略拒绝本地登陆/登录
- ASP.NET 2.0关于用户登录限制问题实例:防止同一用户同时登陆
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- 用户限制登录的功能
- [转] 登录失败:用户帐户限制。可能的原因包括不允许空密码,登录时间限制,或强制的策略限制。
- Debian 8设置开机启动命令行界面及解除root用户登陆限制
- 通过pam限制普通用户无密码登陆
- 使用[登陆到]與[脚本]實現限制域用户的并发登陆
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- win7系统在局域网共享文件提示登录失败用户账户限制的故障原因及解决方法
- Spring Filter过滤器,Spring拦截未登录用户权限限制
- UNIX下如何通过IP限制用户远程登录
- 限制用户多点并发登陆
- [Oracle] 如何使用触发器实现IP限制用户登录
- Linux限制用户登录
- 增加远程登录用户登陆个数
- 去掉WIN7系统用户登陆界面(默认用户自动登录)