最近的web项目里要求同一账号不能同时登陆!
想了几种方法都有漏洞,谁有可行性方案
想了几种方法都有漏洞,谁有可行性方案
解决方案 »
- 24个月 第一个月是当前系统时间,后面递增23个怎么搞
- apache+tomcat 负载均衡,急!!
- struts 标签使用求救!
- java.lang.IncompatibleClassChangeError; nested exception is:
- 请问Hibernate如何在JBuilder中配置???
- java rmi的入门问题
- 使用JAXB数据梆定出错
- james好象不能接收外面服务器转发过来的邮件?可以自己编码增加这个功能吗?可否给点提示?
- EJB的事务怪问题
- 实现多种客户端授权功能,使用什么方式?
- jpa(hibernate3.5.1)延时加载
- Servlet execution threw an exception,配置struts报错,帮忙看看是什么原因
情况之二:第一个用户登录了,第二个用户登录挤掉第一个。
针对于第一种情况,可以在数据库设置用户状态,也可以在缓存,这个很容易实现,现在讨论浏览器异常关闭
的情况如何处理
可以考虑以下3个方法:
1。session失效,实现比较简单,也很保险,但缺点是实时性太差。
2。ajax轮询,也就是在客户端写个定时器,定时通过ajax方式发送一个信号到服务端,当服务端过了最大时间都没有接收到信号说明客户端已经关闭。
3。客户端用一个脚本监测是否关闭JScript code
window.onbeforeunload = function onunload_handler(){
//浏览器关闭的时候会执行到此处
//处理用户信息,使之变成离线状态
}
IE fireFox支持
我原来也遇到过这个问题,公司是用的是SSO。
再利用JS的BeforeUnload事件处理
项目在用的
正在想别的好方法
楼主你有好方法了分享一下。
1如果能够要求用户必须支持cookie的话 登录成功后用户本地保存一个令牌
每次请求都读取cookie令牌信息
如果令牌过时则需重新登录
2把令牌放在SESSION里 然后最新令牌信息进行持久化 如果SESSION里的 比持久化的信息老 就说明需要重新登录了
Implementations of this interface are notified of changes to the list of active sessions in a web application.
$(document).ready (function()
{
window.onbeforeunload=function (){
clearLblErr();
if((window.event.screenX - window.screenLeft) > (document.documentElement.scrollWidth-20) || window.event.clientY < 0 || window.event.altKey)
{
$.ajax({
async:false,
url: "AbandonSession.aspx",
cache: false,
success: function(msg){
}
});
} };
}
);
LZ参考一下~