博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】ASP.NET 防止同一用户同时登陆
阅读量:5226 次
发布时间:2019-06-14

本文共 914 字,大约阅读时间需要 3 分钟。

要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。在这里使用一个cache存放已经登陆的用户名,但是还有一个问题就是要知道用户是什么时候离开系统的呢?这就要定期清除cache中的内容了,也就是设置一个cache的时间。这个时间可以跟用户的session值联系起来,刚好当用户session值失效的时候该用户在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("");}

 

★转载请注明出处:http://www.cnblogs.com/zfanlong1314/archive/2012/01/17/2390457.html

 

转载于:https://www.cnblogs.com/yuan-jun/p/6784694.html

你可能感兴趣的文章
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
关于ajax回调数据类型为Json,如何获得他的值
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>
name phone email正则表达式
查看>>
721. Accounts Merge
查看>>
Python之Split函数
查看>>
Linux下使用pip安装keras
查看>>
OpenCv-Python 图像处理基本操作
查看>>
博物院与国宝
查看>>
vmware tools 的安装(Read-only file system 的解决)
查看>>
数列求和总结
查看>>
「Unity」委托 将方法作为参数传递
查看>>
重置GNOME-TERMINAL
查看>>