- 浏览: 32424 次
- 性别:
- 来自: 北京
最新评论
单点登陆(SSO),多个系统一次登陆权限均配,
彼此访问无需要再次登陆!
大多都是用webservice实现令牌传递,跨系统,跨平台的权限验证。
用数据表实时性不是很好,要总刷新,数据库压力大
如果程序出错,比如操作数据库失败,就不准确了
用Application比较好,但是频繁操作Application会对网站的性能有影响
最好的办法就是设置一个静态变量
asp.net的静态变量就是为了干这个的
因为静态变量是类的全部实例共享的
我用这种方法写了一段代码,这段代码是适用于windows验证的情况,代码编译通过,我没有测试,但是道理是这样的。
-------------------------------------------------------------------------------
1. 定义一个通用类
using System;
using System.Collections;
namespace Web
{
/// <summary>
/// CheckUserLogon 的摘要说明。
/// </summary>
public class CheckUserLogon
{
public static Hashtable userList = new Hashtable();
public CheckUserLogon()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static void AddUserList( string user )
{
userList.Add( user , "online" );
}
public static void RemoveUserList( string user )
{
userList.Remove( user );
}
public static bool CheckUserLogined( string user )
{
if ( userList.ContainsKey( user ) )
{
return true;
}
else
{
return false;
}
}
}
}
2.在Global.asax中修改session_start()和session_end()
protected void Session_Start(Object sender, EventArgs e)
{
if ( CheckUserLogon.CheckUserLogined( this.User.Identity.ToString() ) )
{ //如果已经有同名用户登录,就清空session,这样用户就不能使用
this.Session.Clear();
}
else
{ //如果没有同名用户登录,就记录当前用户
CheckUserLogon.AddUserList( this.User.Identity.ToString() );
}
}
protected void Session_End(Object sender, EventArgs e)
{
CheckUserLogon.RemoveUserList ( this.User.Identity.ToString() );
}
if ( CheckUserLogon.CheckUserLogined( this.User.Identity.ToString() ) )
{ //转到另一个页面,这里提示用户已经有同名用户登录
this.Response.Redirect("aaa.aspx")
}
else
{ //如果没有同名用户登录,就记录当前用户
CheckUserLogon.AddUserList( this.User.Identity.ToString() );
}
彼此访问无需要再次登陆!
大多都是用webservice实现令牌传递,跨系统,跨平台的权限验证。
用数据表实时性不是很好,要总刷新,数据库压力大
如果程序出错,比如操作数据库失败,就不准确了
用Application比较好,但是频繁操作Application会对网站的性能有影响
最好的办法就是设置一个静态变量
asp.net的静态变量就是为了干这个的
因为静态变量是类的全部实例共享的
我用这种方法写了一段代码,这段代码是适用于windows验证的情况,代码编译通过,我没有测试,但是道理是这样的。
-------------------------------------------------------------------------------
1. 定义一个通用类
using System;
using System.Collections;
namespace Web
{
/// <summary>
/// CheckUserLogon 的摘要说明。
/// </summary>
public class CheckUserLogon
{
public static Hashtable userList = new Hashtable();
public CheckUserLogon()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static void AddUserList( string user )
{
userList.Add( user , "online" );
}
public static void RemoveUserList( string user )
{
userList.Remove( user );
}
public static bool CheckUserLogined( string user )
{
if ( userList.ContainsKey( user ) )
{
return true;
}
else
{
return false;
}
}
}
}
2.在Global.asax中修改session_start()和session_end()
protected void Session_Start(Object sender, EventArgs e)
{
if ( CheckUserLogon.CheckUserLogined( this.User.Identity.ToString() ) )
{ //如果已经有同名用户登录,就清空session,这样用户就不能使用
this.Session.Clear();
}
else
{ //如果没有同名用户登录,就记录当前用户
CheckUserLogon.AddUserList( this.User.Identity.ToString() );
}
}
protected void Session_End(Object sender, EventArgs e)
{
CheckUserLogon.RemoveUserList ( this.User.Identity.ToString() );
}
if ( CheckUserLogon.CheckUserLogined( this.User.Identity.ToString() ) )
{ //转到另一个页面,这里提示用户已经有同名用户登录
this.Response.Redirect("aaa.aspx")
}
else
{ //如果没有同名用户登录,就记录当前用户
CheckUserLogon.AddUserList( this.User.Identity.ToString() );
}
发表评论
-
动态生成WORD内容
2009-09-15 14:12 945//动态生成WORD内容 St ... -
页面静态化
2009-09-03 10:25 12521替代法 1.1引用地址 http://www.cnbl ... -
面试
2009-08-18 13:09 22651.简述 private、 protected、 public ... -
批量写数据---将XML数据批量写入数据库
2009-08-18 13:06 1853将数据批量写入数据库的需求是比较多的,方法也有很多种,在.ne ... -
更改 Visual Studio 中用户界面文本所使用的语言
2009-08-06 21:26 1678在“工具”菜单中单击“选项”。 在“选项”对话框中展开“环境 ... -
Visual Studio 2005 图像库
2009-08-06 21:22 1104Visual Studio 2005 图像库是 ... -
.NET设计模式开篇
2009-07-03 23:58 804这几天在看设计模式方面的书,所以记录一下. 1.设计模式是规则 ... -
NET安装模板
2009-06-02 19:52 761菜单->Tools->option->pro ... -
在InstallShield中手动修改XML Files Changes
2009-05-10 13:43 1782最近在忙于打包安装程序,使用的是InstallShield 1 ... -
Visual Studio小技巧:复制代码时,保留原ID
2009-05-10 13:40 1096在我们开发过程中,经常会复制一些代码,而Visual Stud ... -
C#操作数据库备份和还原
2009-04-28 11:11 2358C#实现SQLSERVER2000数据库备份还原的两种方法 ... -
FreeTextBox 1.6.3 (中文版)在新闻发布、博客写作、论坛社区等多种 Web 系统中都
2009-03-29 16:20 2243FreeTextBox 1.6.3 (中文版) ... -
C#编写最小化时隐藏为任务栏图标的Window appllication
2009-03-29 16:14 23051.设置窗体属性showinTask=false 2.加no ... -
WEB技巧[搜集整理]
2009-03-29 16:10 687http://www.logomaker.cn 控制横向和 ... -
漂亮的 js 日历(把日期输入到文本框)
2009-03-29 16:07 1361<!DOCTYPE HTML PUBLIC &quo ... -
.Net 图片上传的一个类库的源码
2009-03-29 16:05 1310上传图片到服务器上是网站开发中很常用的功能,它的实现也很简单, ... -
VS2005下为ASP.NET 2.0网站生成唯一程序集
2009-03-29 16:00 1735我的新闻管理系统http://cms.bmw.net.cn/I ... -
页面间传值的方法总结
2009-02-20 14:54 965ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用 ... -
无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls
2009-02-20 11:18 1416发布网站里遇到,无法将类型“ASP.login_aspx”转换 ... -
VSS使用过程中的问题
2008-12-20 11:46 973VSS客户端不能访问问题“unable to open use ...
相关推荐
spring boot整合spring security 实现SSO单点登陆 完整DEMO. 1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource 127.0.0.1 sso-tmall 127.0.0.1 sso-taobao windows系统的路径在C:\WINDOWS\system...
一个实现SSO方案的构想SSO单点登陆解决方案
sso单点登录ppt.ppt
ASP.NET跨域单点登录源码 ...让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对 Token进行识别和提取,通过与认证系统的通讯,能自动判断当 前用户是否登录过,从而完成单点登录的功能。
sso,单点登录的简易视屏,感兴趣的朋友可以看看,对理解sso还是很有帮助
sso单点登录sso单点登录sso单点登录sso单点登录
SSO单点登陆源代码用户控件,部署再moss中,可以实现单点登陆
sso单点登录源代码sso单点登录源代码sso单点登录源代码sso单点登录源代码sso单点登录源代码
宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录(SSO)与致远A8对接方案.pdf宁盾单点登录...
SSO 单点登录(Single Sign On)的简称, SSO是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
宁盾单点登录(SSO)与SAP对接方案.docx宁盾单点登录(SSO)与SAP对接方案.docx宁盾单点登录(SSO)与SAP对接方案.docx宁盾单点登录(SSO)与SAP对接方案.docx宁盾单点登录(SSO)与SAP对接方案.docx宁盾单点登录(SSO)与SAP...
SSO单点登陆SSO单点登陆SSO单点登陆
CAS_SSO单点登录实例详细步骤,CAS_,SSO,单点登录
因为公司要实现SSO单点登录的效果,最近在网上找了一些资料,但是都没有好用的, 所以自己用PHP 使用TP5.0 实现了SSO单点登录,可以跨多个域名。 下载后在本地配置好 A,B,C 3个网站,就可以模拟效果了。
3) 如果验证通过,则从映射表中取出该用户所有能访问的应用系统,显示在sso登录成功页面。转向登录成功页面之前,将该用户所有能访问应用系统的实际用户名都放到cookie中(从映射表中获得)。也就是说,该用户能...
内含SSO单点登录的实现源代码,以及实现原理详解,有需要的可以看看。
MVC SSO 单点登陆完整demo
SSO单点登录解决方案,包括HP灵动单点登录系统演示文件和其他的资料文件