本人出学小菜鸟,目前在学习作网站,如何防止一个用户重复登录呢?(c#)
高手们帮个忙给段代码,希望能详细点,网上搜的没什么说明看不大懂,谢谢啦。

解决方案 »

  1.   

    利用cache
    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(""); 
      

  2.   

    单用户登陆吧?
    就是后者要把前者踢下线来.
    我很早很早以前做过.2001年左右的时候.
    用户登陆以后生成一个GUID(SESSION ID就可以了),按照和用户名1对1的关系,放在数据库里或者放在内存里.再把这个GUID写到客户端隐藏区域去.
    用户每次请求都拿这个GUID来作为身份票.
    第二个人登陆了,前一个人的GUID肯定就无效了.但是不能踢下来.
    第一个人再请求的时候,相当于是自己把自己踢下来了.
    原来就是这样.