通过记录登录日志和登录IP地址或在客户端写Cookie来判断用户是否登录和从什么地方登录。======================
tiggle

解决方案 »

  1.   

    可以通过执行SP_WHO存储过程,判断一下连接的用户是否有重复。很简单的。
      

  2.   

    to TWWH() 楼主说的是登录的用户名,不是SQL数据库用户
      

  3.   

    我做ASP。NET 
    单用户登陆的问题,要用到 cache和其它知识点
    给你段代码,你去理解
    private void Login_Click(object sender, System.EventArgs e)
    {  // 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。
      // 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。  // 生成Key
      string sKey = UserName.Text + "_" + PassWord.Text;
      // 得到Cache中的给定Key的值
      string sUser = Convert.ToString(Cache[sKey]);
      // 检查是否存在
      if (sUser == null || sUser == String.Empty)
      {
        // Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时
        // 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。
      //TimeSpan 表示一个时间间隔
        TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0);
        HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut,
          System.Web.Caching.CacheItemPriority.NotRemovable,null);
        Session["User"] = sKey;
        // 首次登录,您可以做您想做的工作了。
        Msg.Text="<h4 style='color:red'>嗨!欢迎您访问<a href='http://dotnet.aspx.cc/'>【孟宪会之精彩世界】";
        Msg.Text += "</a>,祝您浏览愉快!:)</h4>";
      }
      else
      {
        // 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录
        Msg.Text="<h4 style='color:red'>抱歉,您好像已经登录了呀:-(</h4>";
       return;
      }
    }