发新话题
打印

Asp.net中防止用户多次登录的方法

Asp.net中防止用户多次登录的方法

引用:
                 
                                     欢迎您访问梦想视觉论坛

您目前的身份是游客,所以只能阅读部份内容,请注册 或者登录 ,谢谢!





在web开发时,有的系统要求同一个用户在同一时间只能登录一次,也就是如果一个用户已经登录了,在退出之前如果再次登录的话需要报错。

  常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存 ...
................

TOP

2、使用xmlhttp方法(这种方法测试下来没有问题)

  在每个页面中加入如下的javascript(这些javascript也可以写在共通里,每个页面引入就可以了)
复制内容到剪贴板
代码:
 var x=0;
  function myRefresh()
  {
  var httpRequest = new ActiveXObject("microsoft.xmlhttp");
  httpRequest.open("GET", "test.aspx", false);
  httpRequest.send(null);
  x++;
  if(x<60) //60次,也就是Session真正的过期时间是30分钟
  {
  setTimeout("myRefresh()",30*1000); //30秒
  }
  }
  myRefresh();
在web.config中设置
复制内容到剪贴板
代码:
<sessionState mode="InProc" timeout="1"></sessionState>
test.aspx页面就是一个空页面,只不过需要在Page_Load中加入:
复制内容到剪贴板
代码:
Response.Expires = -1;
保证不使用缓存,每次都能调用到这个页面。

  原理就是:设置 Session的过期时间是一分钟,然后在每个页面上定时每30秒连接一次测试页面,保持Session有效,总共连60次,也就是30分钟。如果30分钟后用户还没有操作,Session就会过期。当然,如果用户直接关闭浏览器,那么一分钟后Session也会过期。这样就可以满足要求了。

TOP

发新话题
站长联系QQ:815307530