ASP.NET单点登录(代码)

由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在ASP.NET中实现单点登录其实很简单,下面就把主要的方法和全部代码进行分析。[/p][p=25, null, left]实现思路[/p][p=25, null, left]利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。[/p]
[p=25, null, left]string sKey = username.Text.ToString().Trim(); // 得到Cache中的给定Key的值

string sUser = Convert.ToString(Cache[sKey]); // 检查是否存在

if (sUser == null || sUser == String.Empty)

{

TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);//取得Session的过期时间

HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, null);//将值放入cache己方便单点登录

//成功登录

}

else if (Cache[sKey].ToString() == sKey)//如果这个账号已经登录

{

ClientScript.RegisterStartupScript(GetType(), "提示", "<script>alert(‘对不起,当前用户已经登录‘);</script>");

return;

}

else

{

Session.Abandon();//这段主要是为了避免不必要的错误导致不能登录

}

时间: 2024-11-01 15:49:55

ASP.NET单点登录(代码)的相关文章

asp.net单点登录(SSO)解决方案

前些天一位朋友要我帮忙做一单点登录,其实这个概念早已耳熟能详,但实际应用很少,难得最近轻闲,于是决定通过本文来详细描述一个SSO解决方案,希望对大家有所帮助.SSO的解决方案很多,但搜索结果令人大失所望,大部分是相互转载,并且描述的也是走马观花. 闲话少叙,进入正题,我的想法是使用集中验证方式,多个站点集中Passport验证. 如下图所示: 为方便清晰描述,先定义几个名词,本文中出现之处均为如下含义. 主站:Passport集中验证服务器 http://www.passport.com/ .

Asp.Net_单点登录

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if

单点登录相关问题总结

1 概述      对于单点登录的机制和原理就不在这里赘述了.本文仅是对于单点登录问题研究所得的心得进行一下总结.想要实现单点登录可以采用的方式有很多种:1 利用成熟的软件框架(CAS,OPENSSO等)2自己建设单点登录框架(像sohu的单点登录)3 还有就是最简单的使用URL模拟登录. 但是各种方式都各有利弊.最主要的问题是大部分实现方式都需要对单点登录目标系统进行修改,或者在目标系统中放入单点登录代码.如果我们自己对目标系统没有控制能力,那么与目标系统的沟通就成为最大的阻碍. 如果可以不修

单点登录SSO:图示和讲解

h1.title,h2.title { padding-left: 2rem !important; color: rgb(71, 91, 204) !important } h1.title { font-size: 22px !important } h2.title { font-size: 18px !important } .padding { padding: 0 2rem; padding-bottom: 1rem } blockquote.menu { padding-left:

关于sso单点登录以及通过路径直接访问Servlet

1.单点登录代码 package cn.sunline.filter; import java.io.IOException; import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.serv

SSO单点登录之Asp.Net实现示例

一.什么是单点登录SSO(Single Sign-On) SSO是一种统一 认知 和授权机制,指访问用同一服务器不同应用中的受保护资源的同一用户,只需登录一次,即通过一个应用中的安全验证 后,再访问其他 应用中的受保护资源时,不再需要重新 登录验证. 注: 1.所有应用 系统共享一个身份认证系统. 2.所有应用系统能够 识别和提取ticket信息. 二.实现过程 及原理说明 1.Session_Server项目作为用户认证系统,其他网站也使用它作为用户认证 2.对于同一个浏览器 的同一次会员,总

asp.net 跨域单点登录 【转】

关键字:单点登录   跨域    跨域单点登录 源代码下载:http://download.csdn.net/source/1571879 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. asp.net跨域单点登录分为: 1.跨子域单点登录.如 blog.a.com 和 info.a.com 这2个站点同属一个主域.a.com,实现跨子域单点登录很简单,可以

思道OA之ASP.NET OA系统单点登录集成技术

思道OA开发版支持第三方集成,可以第三方的各种管理系统.校园数字化系统.统一认证,进行单点集成登录. (一)第三方系统单点登录到OA系统 下载源码 步骤1: web.config添加以下代码,允许匿名用户访问/sso.aspx,默认开发版已经添加, 将sso.aspx放置到OA目录Webroot下. <location path="sso.aspx"> <system.web> <authorization> <allow users=&quo

asp.net 真正实现完全跨域单点登录

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. asp.net跨域单点登录分为: 1.跨子域单点登录.如 blog.a.com 和 info.a.com 这2个站点同属一个主域.a.com,实现跨子域单点登录很简单,可以利用cookie,设置Domain为”.a.com'即可,这里就不再赘叙. 2.完成跨域单点登录.如 www.a.com www.b.com