ASP.NET中实现用户不可重复登录
2008-06-03 21:27
477 查看
功能描述:A用户使用AID登录 ,B用户在A用户未退出的情况下也使用AID登录 这时A用户被取消权限
在Global.asax中添加以下代码:
[align=left]void Application_AcquireRequestState(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (Request["MyCookies"] != null && Session["ID"] != null)[/align]
[align=left] {[/align]
[align=left] HttpCookie cookie = Request.Cookies["MyCookies"];[/align]
[align=left] if (cookie[Session["ID"].ToString()] != null)[/align]
[align=left] { [/align]
[align=left] if (Application[Session["ID"].ToString()].ToString() != cookie[Session["ID"].ToString()].ToString())[/align]
[align=left] {[/align]
[align=left] TimeSpan ts = new TimeSpan(-1, 0, 0, 0);[/align]
[align=left] cookie.Expires = DateTime.Now.Add(ts); [/align]
[align=left] Response.AppendCookie(cookie);[/align]
[align=left] Session["ID"] = null;[/align]
[align=left] Request.Cookies.Remove("MyCookies"); [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
}
在需要权限验证的页面(等入窗口)
[align=left] protected void Button1_Click(object sender, EventArgs e)[/align]
[align=left]{ [/align]
[align=left]if (Request.Cookies["MyCookies"] != null)[/align]
[align=left] {[/align]
[align=left] if (Session["ID"] != null)[/align]
[align=left] {[/align]
[align=left] if (Session["ID"].ToString() != this.TextBox1.Text)[/align]
[align=left] {[/align]
[align=left] Res_Cookie();[/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Res_Cookie();[/align]
}
}
[align=left]private void Res_Cookie() [/align]
[align=left] {[/align]
[align=left] string this_time = DateTime.Now.ToString();[/align]
[align=left] Application[this.TextBox1.Text] = this_time;[/align]
[align=left] HttpCookie cookie = new HttpCookie("MyCookies");[/align]
[align=left] TimeSpan ts = new TimeSpan(0, 0, 1, 0);[/align]
[align=left] cookie.Values.Add(this.TextBox1.Text, this_time);[/align]
[align=left] Session["ID"] = this.TextBox1.Text;[/align]
[align=left] Response.AppendCookie(cookie);[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
在添加个测试按钮:
[align=left]protected void Button2_Click(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left]if (Request.Cookies["MyCookies"] == null)[/align]
[align=left] {[/align]
[align=left] Response.Write("登录失败!");[/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
}
最后在session_end事件中对Application中的数据进行释放
在Global.asax中添加以下代码:
[align=left]void Application_AcquireRequestState(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left] if (Request["MyCookies"] != null && Session["ID"] != null)[/align]
[align=left] {[/align]
[align=left] HttpCookie cookie = Request.Cookies["MyCookies"];[/align]
[align=left] if (cookie[Session["ID"].ToString()] != null)[/align]
[align=left] { [/align]
[align=left] if (Application[Session["ID"].ToString()].ToString() != cookie[Session["ID"].ToString()].ToString())[/align]
[align=left] {[/align]
[align=left] TimeSpan ts = new TimeSpan(-1, 0, 0, 0);[/align]
[align=left] cookie.Expires = DateTime.Now.Add(ts); [/align]
[align=left] Response.AppendCookie(cookie);[/align]
[align=left] Session["ID"] = null;[/align]
[align=left] Request.Cookies.Remove("MyCookies"); [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]
}
在需要权限验证的页面(等入窗口)
[align=left] protected void Button1_Click(object sender, EventArgs e)[/align]
[align=left]{ [/align]
[align=left]if (Request.Cookies["MyCookies"] != null)[/align]
[align=left] {[/align]
[align=left] if (Session["ID"] != null)[/align]
[align=left] {[/align]
[align=left] if (Session["ID"].ToString() != this.TextBox1.Text)[/align]
[align=left] {[/align]
[align=left] Res_Cookie();[/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
[align=left] } [/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Res_Cookie();[/align]
}
}
[align=left]private void Res_Cookie() [/align]
[align=left] {[/align]
[align=left] string this_time = DateTime.Now.ToString();[/align]
[align=left] Application[this.TextBox1.Text] = this_time;[/align]
[align=left] HttpCookie cookie = new HttpCookie("MyCookies");[/align]
[align=left] TimeSpan ts = new TimeSpan(0, 0, 1, 0);[/align]
[align=left] cookie.Values.Add(this.TextBox1.Text, this_time);[/align]
[align=left] Session["ID"] = this.TextBox1.Text;[/align]
[align=left] Response.AppendCookie(cookie);[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
在添加个测试按钮:
[align=left]protected void Button2_Click(object sender, EventArgs e)[/align]
[align=left] {[/align]
[align=left]if (Request.Cookies["MyCookies"] == null)[/align]
[align=left] {[/align]
[align=left] Response.Write("登录失败!");[/align]
[align=left] }[/align]
[align=left] else [/align]
[align=left] {[/align]
[align=left] Response.Write("登录成功!");[/align]
[align=left] }[/align]
}
最后在session_end事件中对Application中的数据进行释放
相关文章推荐
- ASP.NET实现禁止用户重复登录
- ASP.NET实现禁止用户重复登录
- ASP.net 实现禁止用户重复登录
- asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证等
- ASP.NET jQuery 食谱11 (通过使用jQuery validation插件简单实现用户登录页面验证功能)
- C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考
- asp.net判断用户是否重复登录
- ASP.NET 限制用户重复登录
- ASP.NET 2.0实现防止同一用户同时登录
- Asp.net中实现同一用户名不能同时登录(单点登录)
- C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考
- asp.net 中关于防止用户重复登录的问题
- 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]
- asp.net jQuery Ajax用户登录功能的实现
- ASP.NET 三层架构实现用户登录
- C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考
- asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证等
- 在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
- Asp.net mvc验证用户登录之Forms实现
- asp.net -mvc框架复习(9)-实现用户登录控制器和视图的编写并调试