背景

  首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉。本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就没法登录,这下就上网找资料 改了以后就有了下面的东东了。

登陆页后台

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:这段代码可直接放入登录按钮里,在进行了密码正确与否后直接使用。

基础页后台(公共页)

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. 在网页中添加百度分享功能

    1  百度分享图标 <!-- Baidu Button BEGIN -->     <div id="bdshare" class="bdshare_t ...

  2. 在ASP.NET 中实现单点登录

    出自:[孟宪会之精彩世界] 发布日期:2005年1月27日 8点48分0秒 [有删改] 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NE ...

  3. 怎么在ASP.NET中写HTML,如何:在 ASP.NET 网页中设置控件的 HTML 属性

    如何:在 ASP.NET 网页中设置控件的 HTML 属性 10/22/2014 本文内容 更新:2007 年 11 月 这些示例显示如何向页面中的元素添加 HTML 属性.第一个示例演示如何以声明方 ...

  4. 在Spring MVC Web应用程序中添加社交登录:集成测试

    我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...

  5. ASP.NET Core 中简单Session登录校验

    ASP.NET Core 中简单Session登录校验:从Session的配置添加.到请求过滤.再到页面操作.推荐相关阅读:ASP.NET 会话状态概述  ASP.NET Cookie 概述  ASP ...

  6. 【Python开发】Flask中的单点登录解决方案

    Flask中的单点登录解决方案 1.SSO 和 CAS 单点登录(Single Sign On,SSO)就是通过用户的一次性鉴别登录.当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其 ...

  7. 图片滚动html设置圆圈,在网页中添加滚动图片(文字和其它对象)的方法

    在网页中添加滚动图片(文字和其它对象)的方法 (2006-04-13 15:31:51) 分类: 记 滚动内容 Direction 参数可设置:up down left right (控制滚动方向) ...

  8. 在Spring MVC Web应用程序中添加社交登录:单元测试

    Spring Social 1.0具有spring-social-test模块,该模块为测试Connect实现和API绑定提供支持. 该模块已从Spring Social 1.1.0中删除,并由 Sp ...

  9. html页面怎么添加打印,在网页中添加打印按钮或链接的方法

    在网页中添加打印按钮或链接的方法 发布时间:2020-05-27 17:38:35 来源:亿速云 阅读:347 作者:鸽子 打印按钮或链接是对网页的简单添加 CSS(层叠样式表)使你可以控制屏幕上的网 ...

最新文章

  1. send和WSASend区别
  2. 项目编译失败_Swift源码编译让底层更清晰
  3. 今天仔细学习了html加载执行的顺序
  4. update empty content to text instance - where is B mode changed to D by frame
  5. 如何写 go 代码 (How to Write Go Code 翻译)
  6. jsp 9对象4作用域
  7. 那些很厉害的人,是如何度过职场迷茫的?
  8. Python md5 sha1 的使用
  9. 使用和执行SQL Server Integration Services包的方法
  10. Seek the Name, Seek the Fame - POJ 2752(next运用)
  11. WPF捕获事件即使这个事件被标记为Handled
  12. java对接微信公众号
  13. 3dmax如何快速查找丢失贴图,并根据贴图快速找到对应物体
  14. 光缆弹性模量计算_光缆的基本常识
  15. python游走代码_用Python模拟随机游走(Random walks)
  16. 奇异问题之解决思路(一) npm run dev或npm run buil报错,单独运行scripts又正常?
  17. 【BZOJ4372】烁烁的游戏(点分树)
  18. JAVA网络爬爬学习之HttpClient+Jsoup
  19. 行内元素如何转换成行内块元素使用?
  20. 免费的天气预报API接口--谷歌,雅虎,中央气象台

热门文章

  1. nodemanager不能正常关闭_在什么情况下不能使用罗茨风机及如何正确关闭罗茨风机...
  2. Redis初学:14(Redis中的事务)
  3. Java学习总结:27
  4. Java学习总结:16
  5. 上海职称英语和计算机考试时间,上海职称英语考试时间
  6. 【jquery】用jsp写jquery的模板
  7. IDEA配置GitHub和Gitee
  8. 【iOS】UIButton 图标在上文字在下
  9. 是否可以人为修改发表时间
  10. jenkins 修改工作目录