【C#】ASP.NET网页中添加单点登录功能
背景
首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉。本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就没法登录,这下就上网找资料 改了以后就有了下面的东东了。
登陆页后台
![](/assets/blank.gif)
![](/assets/blank.gif)
Login.aspx.cs//单点登录判断Hashtable hOnline = (Hashtable)Application["Online"];if (hOnline != null){int i = 0;while (i < hOnline.Count) //因小BUG所以增加此判断,强制查询到底 {IDictionaryEnumerator idE = hOnline.GetEnumerator();string strKey = "";while (idE.MoveNext()){if (idE.Value != null && idE.Value.ToString().Equals(userInfo[0].UserId.ToString())){//already login strKey = idE.Key.ToString();hOnline[strKey] = "XXXXXX";break;}}i = i + 1;}}else{hOnline = new Hashtable();}hOnline[Session.SessionID] = userInfo[0].UserId;Application.Lock();Application["Online"] = hOnline;Application.UnLock();
View Code
PS:这段代码可直接放入登录按钮里,在进行了密码正确与否后直接使用。
基础页后台(公共页)
![](/assets/blank.gif)
![](/assets/blank.gif)
asePage.aspx.cs//单点登录判断Hashtable hOnline = (Hashtable)Application["Online"];if (hOnline != null){IDictionaryEnumerator idE = hOnline.GetEnumerator();while (idE.MoveNext()){if (idE.Key != null && idE.Key.ToString().Equals(Session.SessionID)){//already login if (idE.Value != null && "XXXXXX".Equals(idE.Value.ToString())){hOnline.Remove(Session.SessionID);Application.Lock();Application["Online"] = hOnline;Application.UnLock();string js = "<script language=javascript>alert('{0}');parent.window.location = '{1}' </script>";//window.location.replace('{1}')Response.Write(string.Format(js, "帐号已在别处登录 ,你将被强迫下线(请保管好自己的用户密码)!", ResolveClientUrl("~/Login.aspx")));Session["UserInfo"] = null;return;}break;}}}
View Code
PS: 这段代码就是判断依据。
结果演示
转载于:https://www.cnblogs.com/ruicky/p/4381107.html
【C#】ASP.NET网页中添加单点登录功能相关推荐
- 在网页中添加百度分享功能
1 百度分享图标 <!-- Baidu Button BEGIN --> <div id="bdshare" class="bdshare_t ...
- 在ASP.NET 中实现单点登录
出自:[孟宪会之精彩世界] 发布日期:2005年1月27日 8点48分0秒 [有删改] 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NE ...
- 怎么在ASP.NET中写HTML,如何:在 ASP.NET 网页中设置控件的 HTML 属性
如何:在 ASP.NET 网页中设置控件的 HTML 属性 10/22/2014 本文内容 更新:2007 年 11 月 这些示例显示如何向页面中的元素添加 HTML 属性.第一个示例演示如何以声明方 ...
- 在Spring MVC Web应用程序中添加社交登录:集成测试
我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...
- ASP.NET Core 中简单Session登录校验
ASP.NET Core 中简单Session登录校验:从Session的配置添加.到请求过滤.再到页面操作.推荐相关阅读:ASP.NET 会话状态概述 ASP.NET Cookie 概述 ASP ...
- 【Python开发】Flask中的单点登录解决方案
Flask中的单点登录解决方案 1.SSO 和 CAS 单点登录(Single Sign On,SSO)就是通过用户的一次性鉴别登录.当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其 ...
- 图片滚动html设置圆圈,在网页中添加滚动图片(文字和其它对象)的方法
在网页中添加滚动图片(文字和其它对象)的方法 (2006-04-13 15:31:51) 分类: 记 滚动内容 Direction 参数可设置:up down left right (控制滚动方向) ...
- 在Spring MVC Web应用程序中添加社交登录:单元测试
Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...
- html页面怎么添加打印,在网页中添加打印按钮或链接的方法
在网页中添加打印按钮或链接的方法 发布时间:2020-05-27 17:38:35 来源:亿速云 阅读:347 作者:鸽子 打印按钮或链接是对网页的简单添加 CSS(层叠样式表)使你可以控制屏幕上的网 ...
最新文章
- send和WSASend区别
- 项目编译失败_Swift源码编译让底层更清晰
- 今天仔细学习了html加载执行的顺序
- update empty content to text instance - where is B mode changed to D by frame
- 如何写 go 代码 (How to Write Go Code 翻译)
- jsp 9对象4作用域
- 那些很厉害的人,是如何度过职场迷茫的?
- Python md5 sha1 的使用
- 使用和执行SQL Server Integration Services包的方法
- Seek the Name, Seek the Fame - POJ 2752(next运用)
- WPF捕获事件即使这个事件被标记为Handled
- java对接微信公众号
- 3dmax如何快速查找丢失贴图,并根据贴图快速找到对应物体
- 光缆弹性模量计算_光缆的基本常识
- python游走代码_用Python模拟随机游走(Random walks)
- 奇异问题之解决思路(一) npm run dev或npm run buil报错,单独运行scripts又正常?
- 【BZOJ4372】烁烁的游戏(点分树)
- JAVA网络爬爬学习之HttpClient+Jsoup
- 行内元素如何转换成行内块元素使用?
- 免费的天气预报API接口--谷歌,雅虎,中央气象台