asp.net判断用户是否重复登录

登录页(Login.aspx.cs):

byte[] buffer = Guid.NewGuid().ToByteArray();
Session["Guid"] = 用户名 + BitConverter.ToInt64(buffer, 0).ToString() + " ";
Application["online"] += Session["Guid"].ToString();
if (Application["online"].ToString().IndexOf(用户名) != Application["online"].ToString().LastIndexOf(用户名))</span>
{
      string[] guidArray = Application["online"].ToString().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
      string guid = "";
      for (int i = 0; i < guidArray.Length; i++)
      {
            if (guidArray[i].ToString().IndexOf(用户名) == -1)
            {
                  guid += guidArray[i] + " ";
            }
      }
      Application["online"] = guid + Session["Guid"];
}
统一框架页或者各个页面:

<script type="text/javascript">      
      var ol;
      function online() {
          var xmlhttp;
          if (window.XMLHttpRequest) {
              xmlhttp = new XMLHttpRequest();
          } else {
              xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          }
          xmlhttp.onreadystatechange = function () {
              if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                  if (xmlhttp.responseText == "0") {
                      clearInterval(ol);
                      alert("你的帐号已在别处登陆,你被强迫下线!");
                      window.location.href = "Login.aspx";
                  }
                  else {
                      clearInterval(ol);
                      ol = setInterval(online, 3000);
                  }
              }
          }
          xmlhttp.open("GET", "/online.ashx", true);
          xmlhttp.send();
      }

      window.onload = function () {
          online();
      }
</script>
online.ashx:
      if (context.Application["online"].ToString().IndexOf(context.Session["Guid"].ToString()) == -1)
          context.Response.Write("0");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值