在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在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, 将用户信息保存在服务器缓存中)相关推荐
- 在ASP.NET 中实现单用户登录(利用Cache, 将用户信息保存在服务器缓存中)[转]
Technorati 标签: asp.net,cache 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NET中实现单点登录其实很简单,下 ...
- 一步一步实现中后台管理平台模板-08-登录页和用户信息保存
一,前言 上一篇,完善了Header组件,添加了用户信息的显示和退出功能 用户信息(昵称+头像)都是写死的,线上应用肯定是通过登录获取到用户信息这一篇,制作一个简单的登录页面,模拟接口异步调用(用户信 ...
- 在ASP.NET 中实现单点登录
出自:[孟宪会之精彩世界] 发布日期:2005年1月27日 8点48分0秒 [有删改] 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NE ...
- 【Python开发】Flask中的单点登录解决方案
Flask中的单点登录解决方案 1.SSO 和 CAS 单点登录(Single Sign On,SSO)就是通过用户的一次性鉴别登录.当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其 ...
- 调用API接口登录后,获取用户信息保存到Vuex中并渲染到Vue页面
文件封装 步骤 核心请求文件 在 apiUse 文件夹中的 index.js 文件写 API接口方法 baseURL + url 后台完整地址 将信息写入 store 文件夹中的 index.js 文 ...
- 【CURL】模拟登录网站并获取用户信息
模拟登录网站并获取用户信息 前言 这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息. 前后端分离 本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接 ...
- VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)
注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.比如我们打开一个记事本,调整其窗口大小,使用 ...
- php执行who命令,Linux_在Linux系统中使用who和whoami命令获取用户信息,who用法:who [选项]... [ 文件 | - phpStudy...
在Linux系统中使用who和whoami命令获取用户信息 who用法:who [选项]... [ 文件 | 参数1 参数2 ] 显示当前已登录的用户信息. -a, --all ...
- (详解)钉钉接口,PC端微应用,免登录及获取当前用户信息
1.用了两天的时间,一直在研究微应用的,免登录及获取用户信息这一块. 但是钉钉官网写的太繁杂了,看了一天,硬是没看明白,最后,硬着头皮,一点点查资料,借鉴别人的代码,终于 研究 出来了,为了防止 年轻 ...
- 浙里办开发票据认证单点登陆、令牌获取用户信息
浙里办开发票据认证单点登陆.令牌获取用户信息(JAVA后端处理) 最近在搞浙里办开发,周边的人里都没人接触过,以至于自己摸索搞起来比较心累.浙里办单点登陆需要在IRS上走申请,审核流程通过后,和指 ...
最新文章
- 3层-CNN卷积神经网络预测MNIST数字
- AndroidStudio 在工具栏上设置显示前进和后台的方法
- linux c socket ip地址 字符串 数字 转换 inet_addr inet_ntoa
- python语言培训班-Python语言培训(零基础初级班)
- 读《c#与算法--快速排序》随笔
- 腾讯如何打造新基建时代高可扩展的区块链引擎
- python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
- cv1159 最大全0子矩阵(极大子矩阵)
- 破格晋升!一批高校教师脱颖而出
- 经典算法大全之河内之塔
- hdoj 4940 强连通图
- 91.解码方法(力扣leetcode) 博主可答疑该问题
- Mixly(米思齐)for Mac 2.0 安装遇到的一些问题
- SQL Server with ties 语句
- 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口
- sstream和strstream的用法
- elementui穿梭框数据不更新
- 图像处理随笔之峰值信噪比(peak signal to noise ratio)
- 疫情期间再读三体(4)——杨冬之死与“终极问题”的思考
- 千人千面智能淘宝店铺背后的算法研究登陆人工智能顶级会议AAAI 2017