您的位置:首页 > 编程语言 > ASP

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

2016-01-27 16:18 771 查看
登录页(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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: