用session也许可以阿,登陆后,把客户端的ip写入session

解决方案 »

  1.   

    楼上说的办法可行!
    不过用户如果用代理服务器上的话,还是会出现问题的!你可以在用户登陆后,在session中放一个标志位,如果在别的机器上这个用户的帐号又被登陆的时候,你就可以判断了,也就是说判断seesion中的标志位是否存在,如果已经存在的话就不让他登陆
      

  2.   

    直接用session保存用户信息,服务器自动会给用户分配一个sessionid,所以你不用判断服务器自动回判断是谁操作的,一般不会串号的!
      

  3.   

    代理的ip session 如何处理?
      

  4.   

    在数据库里设置一个flag即可解决。
      

  5.   

    要什么session,在数据库里设置一个flag吧
      

  6.   

    我的建议同sword93类似!但是我建议从整个安全架构来考虑!把允许用户多点做为一个选项来设置!这样做可能从整体架构上更灵活些!
      

  7.   

    用session或者数据库还好理解,写监听类是怎么实现的,求高人指点。
      

  8.   

    写一个监听类,用hashtable存储再现用户(如半小时内活动用户),用户的ID作为hashtable的索引,如果相同的用户登录,就把以前的用户ID剔出hashtable,一切OK
      

  9.   

    nonametxt(noname.txt) 的方法好/-----------------------------------
    我怎么样才能限制这种情况呢,只要那个用户登录了,就不允许他在其它机器上登录了
    ---------------------------------------我感觉这样设计是有问题的,你试想一下,如果用户非法关闭,你可以通过session被破坏的时候把flag设置为离开,但是用户需要等很长时间!我原来搞oa的时候就出现这样的问题,尤其是一些3721之类的东西,因为登陆是全屏,所有会有弹出,但是这些软件会过滤掉,实际上已经登陆上去了,flag也设置为1了,但是就是看不到页面,再重新登陆就需要等到session认为你已经自动退出那个时刻了.很麻烦!感觉应该是全都可以登,但是有一个登陆上以后,会把原来的踢出下线,qq就是这样设计的
      

  10.   

    这个问题我也遇到过,使用监听方法实现最佳,只是有可能不准,因为HTTP的协议有关,不能够判断用户关闭IE后,SESSION立即失效.
      

  11.   

    记下用户的IP,只要他登录一次就OK
    或者是半小时一次,一天一次等。
      

  12.   

    实现舰艇的接口。HttpSessionBindingListener
    实现方法 /**
     * 当用户创建一个会话时,将用户该对象实力放入到再现用户列表中
     * @param event
     */
    public void valueBound(HttpSessionBindingEvent event) {
    boolean dup = false;
    for (int i = 0; i < UserSession.userList.size(); i++) {
    UserSession u = (UserSession) UserSession.userList.get(i);
    if (u != null
    && u.getUserName() != null
    && u.getUserId().equals(
    this.getUserId())) { // forbid add a duplicate user
    dup = true;
    }
    }
    if (!dup) {
    UserSession.userList.add(this);
    }
    System.out.println(this.userId + " added into userlist");
    }
    /**
     * 当用户会话失效时,在再现用户表中将该对象实力删除
     * @param event
     */
    public void valueUnbound(HttpSessionBindingEvent event) {
    UserSession.userList.remove(this);
    System.out.println(this.userId + " remove from userlist");
    }