论坛首页 Java版

杜绝一个帐号多个人使用的技术问题

浏览 26539 次
该帖已经被评为精华帖
作者 正文
最后更新时间:2004-08-26
当注册一个用户帐号后,
为了杜绝同一个帐号多个人使用(即防止一个账号在不同地方同时登录),
请问实现这个功能的思路是怎样的?希望老战士门指点指点
   
最后更新时间:2004-08-26
传说中有一种东西叫做 application scope
   
0 请登录后投票
最后更新时间:2004-08-26
这个说容易也容易,一个方式就是从request中获取IP,维护IP与用户的关系,并且可以根据IP计算出不同的位置(比如说,一个用户今天上午的IP显示在中国,而晚上显示在美国,如果IP是真实的,那么肯定不可能了)。
    但是这个问题说来也难,当不同的人用同一个代理服务器,那么就无法处理了,顶多一个方式可以处理同时登陆,比如说,维护session与用户的关系,一个用户只能拥有一个session,而不是一个链接一个。
   
0 请登录后投票
最后更新时间:2004-08-27
在application scope中记录已经登录的用户,当用户登录的时候检查已经登录的用户列表,如果已经记录该用户则不允许再登录。
当用户正常的退出登录,从application scope中去除该用户的登录标记。
这里有个问题,当用户没有通过正常的退出程序退出(例如直接关闭浏览器、重新启动计算机)时,怎么办?
   
0 请登录后投票
最后更新时间:2004-08-27
首先,不一定要是在application 的scope中记录,另外,你需要实现HttpSessionListener接口,也就是session过期的时候自动进行清理(当然用户关闭链接不会很快就过期session,但是服务器会自动清理这样的session).
     如果楼上的要求只是避免用户的同时登陆,这个非常好做. 但是如果是想避免用户给别人用(比如它本人不用而借给别人用,或者在不同时候多个地方登陆),呵呵,那么就必须采用AB网站的模式(黄色网站了,呵呵),也就是维护IP与用户的关系.
   
0 请登录后投票
最后更新时间:2004-08-27
还是用application,速度最快,也可以放到db里,不管怎样HttpSessionListener都要实现的,好让他在session失效的时候做个登出的动作。

什么建立user和ip之间的联系是个馊主意,ip和用户有个嘛联系。
   
0 请登录后投票
最后更新时间:2004-08-28
哈哈,楼上这就错了。对于电子商务网站(比如说费用包月之类的),如果不对用户和IP进行关联(这种关联不是强关系,也就是说不是一对一,而是说,你上午用一个地方的IP,而下午的IP出现较大差别的时候),那么岂不会出现很多人共享一个用户名的事情么?(这对于靠此赚钱的电子商务肯定是不行的)。如果你听说过AB网站,了解AB的用户名和密码的失效,你就更容易理解了。
   
0 请登录后投票
最后更新时间:2004-08-28
而且要做好用户与IP的关系,是件非常麻烦的事情,惹不好,容易引起客户的反感,它是需要一个好的排除算法的。不但不是楼上所说馊主意,反而是更能维护电子商务系统安全性的一个重要关键。
   
0 请登录后投票
最后更新时间:2004-09-05
凤舞凰扬 写道
哈哈,楼上这就错了。对于电子商务网站(比如说费用包月之类的),如果不对用户和IP进行关联(这种关联不是强关系,也就是说不是一对一,而是说,你上午用一个地方的IP,而下午的IP出现较大差别的时候),那么岂不会出现很多人共享一个用户名的事情么?(这对于靠此赚钱的电子商务肯定是不行的)。如果你听说过AB网站,了解AB的用户名和密码的失效,你就更容易理解了。


不是吧,我认为只要同一个时间段一个用户名不能同时登陆一次以上就可以了。为什么还要跟ip做联系呢。我同一个用户上午在北京上,下午飞到上海了,难道网站就因为ip不一样不让我上了吗?
   
0 请登录后投票
最后更新时间:2004-09-06
像msn那样就行了吧,如果另外一个地方登陆了,之前的就logout
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐