本人出学小菜鸟,目前在学习作网站,如何防止一个用户重复登录呢?(c#)
高手们帮个忙给段代码,希望能详细点,网上搜的没什么说明看不大懂,谢谢啦。
高手们帮个忙给段代码,希望能详细点,网上搜的没什么说明看不大懂,谢谢啦。
解决方案 »
- asp.net 如何给GridView添加右键菜单。。。
- 怎样让hyperlink的文本,鼠标移到上面时变色
- ashx 不编译,不会不影响性能?
- ASP.NET 2.0 FORMVIEW 更新无效
- |M| 求WinFrom程序的全局按键的程序设计思相和实现
- web.config 中的ACCESS连接句在类库中如何读出
- 学习MSPetShop遇到的问题“class SimplePager : Repeater”中的事件
- 如何定位光标到datagrid中得某一个单元格?
- C#能写Isapi程序吗?或者有其它办法来实现类似能?
- .net环境下asp后缀的打开巨慢
- 网站页面美观问题
- 救急啊 很 郁闷 在线等
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("");
}
就是后者要把前者踢下线来.
我很早很早以前做过.2001年左右的时候.
用户登陆以后生成一个GUID(SESSION ID就可以了),按照和用户名1对1的关系,放在数据库里或者放在内存里.再把这个GUID写到客户端隐藏区域去.
用户每次请求都拿这个GUID来作为身份票.
第二个人登陆了,前一个人的GUID肯定就无效了.但是不能踢下来.
第一个人再请求的时候,相当于是自己把自己踢下来了.
原来就是这样.