请高手帮忙,我现在有个客户端程序,登陆的时候它做了同时登陆限制。
我现在的问题是想同一帐号能在不同的计算机上面同时登陆正常使用
请问有没有什么解决办法?

解决方案 »

  1.   

    对于这种情况,为了安全起见
    一般都是采用,后者挤下前者
    最后登录的用户具有访问权限,其前面登录的用户会被挤下如果楼主真想处理,可以在数据库表增加一个相应的一个状态字段,比如,online吧
    当用户登录成功以后,就把其状态字段修改为真,如果该用户继续在不同的客户端登录
    则对该用户进行提示,该用户已经登录.
      

  2.   


    放在登陆成功的地方:string key = TextBox1.Text; //用户名文本框设为cache关键字 
    string uer = Convert.ToString(Cache[key]); //读取cache中用户相应的值
    //判断cache中是否有用户的信息,如果没有相关的值,说明用户未登陆
    if (uer == null || uer == String.Empty)
    {
     //定义cache过期时间 TimeSpan SessTimeout = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0); //第一次登陆的时候插入一个用户相关的cache值,
     HttpContext.Current.Cache.Insert(key, key, null, DateTime.MaxValue, SessTimeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
     Session["ADMINID"] = TextBox1.Text;
     Response.Redirect("main.aspx");
    }
    else
    {
     //重复登陆
     Response.Write("<script>alert('您的账号已经登陆!');window.location='login.aspx';</script>");
    }
      

  3.   

    1\数据库中添加登录IP或计算机名记录,登录时判断一下最后登录时的IP或机器名是否相同,如果相同,就是同一机器登录,不是就是不同机器登录.不过别忘了清空登录状态.