1。如何用bs模式实现限制用户只能通过一个端口登录,同时在两地登录则后者无法登录2。如何记录用户登录时间长度,尤其是退出时间。谢谢,高分求答案
解决方案 »
- java web跳转问题请指导
- 求能上传多张图片和附件的JSP代码,能直接运行的【100分】
- 发生Connection reset by peer: socket write error错误,如何解决,在线等......
- 熟悉struts2.0的朋友,请帮忙看看小生的疑惑。谢谢
- DisplayTage 分页问题
- 讨论:成熟的前台设计需要具备的条件
- 可以获得一个对象被修改的时间吗
- tomcat下mysql数据源的配置,SOS!
- 我去过不少论坛,这儿的人是我见过混得最失败的一族,还特幼稚,特愤世嫉俗,真看不惯!
- springmvc框架,跳转页面出现问题
- 求助:Unable to compile class for JSP注意:sun.tools.javac.Main 已过时
- hibernate detachedCriteria.setProjection 求最大值问题
现在常用的有单点登录。以及session监听
仅需要在web.html加入点东西,
然后配置security.xml:
设置: <bean id="concurrentSessionController"
class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">
<property name="maximumSessions" value="1"></property> <!-- 最大登录用户为1-->
<property name="sessionRegistry" ref="sessionRegistry"></property>
<property name="exceptionIfMaximumExceeded" value="true"></property>
<!-- 是否不被异地同账号登录?-->
</bean>
第二个问题:肯定存在着非法退出。这样的话以list查找用户是否在线时用户不在线则为下线时间。正常退出则保存正常退出的时间存入logouttime。如果退出,则保存该条记录到数据库或者写入文件。
1.查询loginTicket表有无该用户,并且标志位是已登录的。
如果没有,执行3;如果有,执行2.
2.检查当前时间-该用户的登录时间是否大于“有效时间”。
如果大于,更改标志位为已退出,并执行3;如果没有,打印“不能异地登陆”。
3.记录登录用户ID和登录时间,标志位设为已登录。登录用户存如session。PS:loginTicket表还可以增加一些退出时间的字段;“有效时间”可以设置成session的生命周期;如果有异常退出或者断电的情况,则在原用户“有效时间过后”,可以执行异地登陆了;可以扩展“强制登录”的功能。