由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在ASP.NET中实现单点登录其实很简单,下面就把主要的方法和全部代码进行分析。

实现思路

利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。

查看示例

SingleLogin.aspx代码

单点登录测试

单点登录测试

用户名称:

用户密码:

SingleLogin.aspx.cs代码

using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace eMeng.Exam { /// /// SingleLogin 的摘要说明。 /// 实现单点登录 /// public class SingleLogin : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox UserName; protected System.Web.UI.WebControls.TextBox PassWord; protected System.Web.UI.WebControls.Label Msg; protected System.Web.UI.WebControls.Button Login; private void Page_Load(object sender, System.EventArgs e) { // 实际例子可访问: // http://dotnet.aspx.cc/Exam/SingleLogin.aspx } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.Login.Click += new System.EventHandler(this.Login_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Login_Click(object sender, System.EventArgs e) { // 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。 // 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。 // 生成Key string sKey = UserName.Text + "_" + PassWord.Text; // 得到Cache中的给定Key的值 string sUser = Convert.ToString(Cache[sKey]); // 检查是否存在 if (sUser == null || sUser == String.Empty) { // Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时 // 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。 TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0); HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable,null); Session["User"] = sKey; // 首次登录,您可以做您想做的工作了。 Msg.Text="

嗨!欢迎您访问【孟宪会之精彩世界】"; Msg.Text += ",祝您浏览愉快!:)

"; } else { // 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录 Msg.Text="

抱歉,您好像已经登录了呀:-(

"; return; } } } }

转载于:https://www.cnblogs.com/niit007/archive/2006/10/09/524474.html

在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)相关推荐

  1. 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]

    Technorati 标签: asp.net,cache 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NET中实现单点登录其实很简单,下 ...

  2. 一步一步实现中后台管理平台模板-08-登录页和用户信息保存

    一,前言 上一篇,完善了Header组件,添加了用户信息的显示和退出功能 用户信息(昵称+头像)都是写死的,线上应用肯定是通过登录获取到用户信息这一篇,制作一个简单的登录页面,模拟接口异步调用(用户信 ...

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

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

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

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

  5. 调用API接口登录后,获取用户信息保存到Vuex中并渲染到Vue页面

    文件封装 步骤 核心请求文件 在 apiUse 文件夹中的 index.js 文件写 API接口方法 baseURL + url 后台完整地址 将信息写入 store 文件夹中的 index.js 文 ...

  6. 【CURL】模拟登录网站并获取用户信息

    模拟登录网站并获取用户信息 前言 这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息. 前后端分离 本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接 ...

  7. VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)

    注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.比如我们打开一个记事本,调整其窗口大小,使用 ...

  8. php执行who命令,Linux_在Linux系统中使用who和whoami命令获取用户信息,who用法:who [选项]... [ 文件 | - phpStudy...

    在Linux系统中使用who和whoami命令获取用户信息 who用法:who [选项]... [ 文件 | 参数1 参数2 ] 显示当前已登录的用户信息. -a, --all             ...

  9. (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息

    1.用了两天的时间,一直在研究微应用的,免登录及获取用户信息这一块. 但是钉钉官网写的太繁杂了,看了一天,硬是没看明白,最后,硬着头皮,一点点查资料,借鉴别人的代码,终于 研究 出来了,为了防止 年轻 ...

  10. 浙里办开发票据认证单点登陆、令牌获取用户信息

    浙里办开发票据认证单点登陆.令牌获取用户信息(JAVA后端处理)   最近在搞浙里办开发,周边的人里都没人接触过,以至于自己摸索搞起来比较心累.浙里办单点登陆需要在IRS上走申请,审核流程通过后,和指 ...

最新文章

  1. 3层-CNN卷积神经网络预测MNIST数字
  2. AndroidStudio 在工具栏上设置显示前进和后台的方法
  3. linux c socket ip地址 字符串 数字 转换 inet_addr inet_ntoa
  4. python语言培训班-Python语言培训(零基础初级班)
  5. 读《c#与算法--快速排序》随笔
  6. 腾讯如何打造新基建时代高可扩展的区块链引擎
  7. python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
  8. cv1159 最大全0子矩阵(极大子矩阵)
  9. 破格晋升!一批高校教师脱颖而出
  10. 经典算法大全之河内之塔
  11. hdoj 4940 强连通图
  12. 91.解码方法(力扣leetcode) 博主可答疑该问题
  13. Mixly(米思齐)for Mac 2.0 安装遇到的一些问题
  14. SQL Server with ties 语句
  15. 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口
  16. sstream和strstream的用法
  17. elementui穿梭框数据不更新
  18. 图像处理随笔之峰值信噪比(peak signal to noise ratio)
  19. 疫情期间再读三体(4)——杨冬之死与“终极问题”的思考
  20. 千人千面智能淘宝店铺背后的算法研究登陆人工智能顶级会议AAAI 2017

热门文章

  1. 【司法比赛】第三届“中国法研杯”司法人工智能挑赛(CAIL2020)即将启动
  2. 【干货】如何打造高质量的NLP数据集
  3. 冬天来了,能暖心的不止有女朋友,还有它。
  4. 机器学习基础算法26-聚类理论
  5. python路径及运行方式相关说明
  6. adaboost代码实现
  7. docker打包部署flask镜像
  8. 词性标注-隐马尔可夫模型
  9. 量子时代已来,与时代接轨,从这本书开始
  10. Android系统源代码情景分析