ASP.NET 2.0防止同一用户同时登陆

原创 2007年09月21日 13:33:00

要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。在这里使用一个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("<script>alert('您的账号已经登陆!');window.location='login.aspx';</script>");

限制在同一台电脑上只允许有一个用户登录系统

在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。具体一点就是:    1、在同一台电脑上一次只允许有一个用户登录系统,2、一个用户在同一时...
  • zp522123428
  • zp522123428
  • 2014年09月28日 16:21
  • 3187

防止用户重复登录

项目笔记:最近做了个防止用户重复登录的需求:部分站点的用户登录系统后,如果没有退出,将不允许再次登录。 项目简介:spring security ,redis(分布式) 。项目实现的很多底层的jar包...
  • xihuanxiaoxin
  • xihuanxiaoxin
  • 2017年04月07日 17:11
  • 1540

PHP实现同一个帐号不允许多人同时重复登陆

数据库表 user_login_info 字段:id,user_ip,user_id,last_access_time user_id 做唯一性索引 1. 用户登录后 如果没有当前用户我的百分...
  • will5451
  • will5451
  • 2016年05月24日 11:34
  • 1755

ASP.NET实现禁止用户重复登录

本文先为大家介绍如何利用缓存Cache方便地实现此功能。  Cache与Session这二个状态对像的其中有一个不同之处,Cache是一个全局对象,作用的范围是整个应用程序,所有用户; 而Sess...
  • zhu1991_
  • zhu1991_
  • 2017年01月18日 16:58
  • 1127

关于防止一个账号在不同机器上重复登录

简单的session用户管理
  • azui999
  • azui999
  • 2017年04月24日 15:19
  • 527

我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)

看了一下官网,没有找到关于如何控制同一用户只能一处登录的介绍,网上也没有找到相关的文章。可能有些人会记录用户的登录信息,然后达到踢出用户的效果。这里介绍一个更简单的方法。 如果我们跟shiro的源码...
  • LHacker
  • LHacker
  • 2014年03月04日 10:02
  • 16008

springsecurity中如何做到多个用户不能使用同一个账号同时登陆系统

第 8 章 管理会话 多个用户不能使用同一个账号同时登陆系统。 8.1. 添加监听器 在web.xml中添加一个监听器,这个监听器会在session创建和销毁的时...
  • u014236541
  • u014236541
  • 2015年11月12日 16:45
  • 2719

java项目同一浏览器下限制用户重复登录

此内容有借鉴原文http://blog.csdn.net/huiwenjie168/article/details/7021293 //第一步  // 此监听器用来监听用户在对sess...
  • u012567997
  • u012567997
  • 2014年12月10日 17:41
  • 1676

asp.net实现同一用户只能在在一个地方登录即单点登录

Web 项目中经常遇到的问题就是同一用户名多次登陆的问题,相应的解决办法也很多,总结起来不外乎这几种解决办法:将登陆后的用户名放到数据库表中;登陆后的用户名放到Session中;登陆后的用户名放到Ap...
  • yanabcdef
  • yanabcdef
  • 2017年04月07日 15:58
  • 867

Shiro的验证机制 和同一浏览器 多次登录的BUG

Shiro同时登陆多个账户异常 5条回复 5571 views 关于一个浏览器同时登陆多个账户,自动跳转到原登录页面的逻辑错误。 方法1 对shiro源码进行了调试,发现...
  • zhangxinly
  • zhangxinly
  • 2017年05月19日 22:46
  • 1408
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET 2.0防止同一用户同时登陆
举报原因:
原因补充:

(最多只允许输入30个字)