首页 新闻 会员 周边 捐助

防止同一网站用户重复登录时遇到的问题

0
悬赏园豆:50 [已解决问题] 解决于 2015-07-07 09:34

目的:  

同一个用户不能重复登录。

实现:

 在Action里做check,如果当前session里面有既存的user,就在登录页面上返回错误信息。

 

现状:  

1.登录时提交方式为Post。  

2.登录用的actionForm已经在struts-config里面配置socpe="request"。  

3.从登录页面登录成功后的页面使用了frameset。  

 

环境:  Java struts+tomcat,IE6~IE11

 

问题:  

修改前,按F5刷新后,回到刚登录成功后的初始画面。  

修改后,因为上面的check,按F5刷新后显示报错的登录页面。

为使刷新后不报错,我想到了以下两种解决方案。  

 

1.禁用F5:   

!!但是,画面得到焦点后,应该被禁用的F5又可以刷新了。。。

 

2.不禁用F5,通过判断画面是否刷新来进行控制:

在登录页面的form里加一个hidden项,从登录页面登录时给它赋值。

如果这个hidden项为空,则表明进行了刷新。

!!但是,事实上,从登录后任意一个页面点刷新后,登陆页面的表单内容(包括用户名,密码,hidden项)的值并没有被清空,还是保存着登陆成功时的值。

 

求助:  

以下只要任意一个问题有解答就好。拜托各位大神!救救我这棵菜!T_T  

1.为避免保存在session里的信息"串门",各位大神如果有更好的解决方案,务请不吝赐教!

 

2.画面得到焦点后,应该被禁用的F5又可以刷新了ーー这是为什么?有解决办法吗?

 

3.但事实上,从登录后任意一个界面点刷新后,登陆页面的表单内容(包括用户名,密码,hidden项)的值并没有被清空,还是保存着登陆成功时的值。ーー这是为什么?有解决办法吗?

  

   

问题补充:

虽然问题还没有完全解决,各位如果哪天有想法了,请再指教。

Keyirei的主页 Keyirei | 初学一级 | 园豆:157
提问于:2015-07-03 16:27
< >
分享
最佳答案
0

别闹了,一个浏览器就是一个会话,

一个会话只能有一个用户,一个窗口登录了.另外一个窗口再登录,整个会话就是另一个登录用户

你没明白 一个"会话"的含义

收获园豆:35
吴瑞祥 | 高人七级 |园豆:29449 | 2015-07-03 18:48

让大侠闹心了T_T,是的,我刚刚反应过来是这么回事,谢谢,我又涨姿势了……问题不在于两个不同的用户,而在于同一个用户可以打开两个窗口,最新打开的窗口里存入session的值会覆盖之前打开窗口时存入的值。再有不妥请继续指教~

另外,解决这种问题大侠有何高见?

Keyirei | 园豆:157 (初学一级) | 2015-07-03 19:02

@Keyirei: 这种没什么好解决.就是这样.不过你可以在登录时做一个判断,如果用户已登录,就要求先退出登录,后才能登录

一个会话就是标识一个client,而会话里登录的对象只是标识当前的client登录的用户而已.

吴瑞祥 | 园豆:29449 (高人七级) | 2015-07-03 19:06

@吴瑞祥: 嗯,谢谢^ω^!

现在已经加上了登录时的判断,可是登录完毕操作其它页面时,刷新页面,就又去执行登录的逻辑,这时因为会话里已经有登录对象,执行我加上的判断时会提出退出之后重新登录,回不到刷新前页面。为了解决这个,才有了上面的二三问……

 

Keyirei | 园豆:157 (初学一级) | 2015-07-03 20:15
其他回答(2)
0

1、首先Session串门,这不科学~

2、不知道你说的禁用F5是什么情况。

3、这个值有可能是浏览器帮你存的,这个你要确认好~

收获园豆:15
幻天芒 | 园豆:37207 (高人七级) | 2015-07-03 17:19

重新回复一次~

浏览器帮忙存是说存在cookie里吗?

支持(0) 反对(0) Keyirei | 园豆:157 (初学一级) | 2015-07-03 19:13

@Keyirei: F5的话,会重新提交,这也是浏览器的。你需要跳转一次就能屏蔽这个了。

浏览器帮忙不一定是存在cookie里面的。chrome就经常干这事。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-07-03 21:49
0

这个问题需要通过Cookie解决,而不是Session

空明流光 | 园豆:111 (初学一级) | 2015-07-05 12:05

具体一点是怎样实现呢?刷新时的问题能通过cookie解决吗?

支持(0) 反对(0) Keyirei | 园豆:157 (初学一级) | 2015-07-05 13:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册