[原创]单点登陆(SSO)组件的设计与实现一

更新:新增登录流程图:

[原创]单点登陆(SSO)组件的设计与实现二-登录流程图 


    先说几句废话,自我感觉此方案还不错,至少解决了安全性的问题,也实现了统一登出,能跨平台,跨服务期,跨域名,当然需要相应的联盟站点的支持,但从原理上绝对能跨平台。设计和具体实现的描述比较长,今天先介绍一部分


1引言

1.1 编写目的

详细说明单点登录组件(SSO)的设计思想和实现方法,是日后该组件维护和扩展工作的基本依据文档。预期读者是要实现单点登录(SSO)系统的系统设计人员,系统开发人员,系统维护人员。

1.2 背景

说明:

  1. 待开发软件系统的名称;jillzhang的SSO组件
  2. 本项目的任务提出者为jillzhang、开发者为jillzhang、用户为有用户整合需求平台的开发和设计人员。

1.3 定义

SSO是Single Sign On的缩写,该技术主要用于用户整合。
认证中心:认证中心是用户注册,成员站点管理,用户登录,验证登录信息,保存登录 信息,颁发登录认证的中心站点。 
成员站点: 成员站点是遵从认证中心规则,享用认证中心统一用户的站点。  
注册站点:如果想成为成员站点,必须先在认证中心进行站点登记,登记后,认证中心会保存注册站点的配置信息,并将该配置信息发给注册站点。注册站点也需保存这些配置信息,供日后与认证中心交互时候使用。  
联盟用户:指在认证中心注册的用户,这些用户能被所有的成员站点所共享。
登录请求:指成员站点向认证中心发出的带有站点配置的用户登录请求信息。
登出请求:只用户向认证中心发出的要求退出登录的请求。  
登录请求验证:指的是认证中心根据存储的站点信息对成员站点的登录请求信息进行来 源和真实性的验证。
登出请求验证:指认证中心在接受来自成员站点的登出请求的时候,对请求的来源和真实性进行的验证
登录答复:指认证中心对经过验证的登录请求作出的答复信息。该答复包含用户的登录信息。
在线联盟用户数:指的是在成员站点中,在线的联盟用户数量。  
在线联盟用户列表:指的是在成员站点中,在线的联盟用户的列表信息。 
登录站点清单:是由认证中心维护的用户的登录站点信息,当用户注销的时候,会遍历此清单,逐个登出。

1.4 参考资料

本组件的设计和实现参考了下面的系统和书籍

  1. 《数字签名技术原理及技术》

2 程序系统的结构

本组件包括下面几个应用接口,分别如下:

  1. ISite:ISite是用于描述和操作成员站点的接口
  2. IUser : IUser是用于描述和操作联盟用户的接口
  3. IServer:IServer是认证中心处理登录请求和登出请求的接口
  4. IClient: IClient是成员站点发出登录请求和处理登录答复的接口
  5. IUserLoginList:IUserLoginList是描述和操作用户登录站点清单的接口
  6. ILoginRequest:是记录和操作成员站点发送登录请求的接口。
  7. ILoginRequestContainer:用于保存和维护登录请求列表的接口
  8. IUserStateContainer:是联盟站点中保存用联盟用户登录信息的接口。

它们的定义如下:

组件的工作流程描述如下:

  1. 第一步,首先注册联盟站点,注册联盟站点用到接口ISite
  2. 第二步:注册好联盟站点之后,将认证中心产生的站点配置信息(包括站点编号,站点公钥,站点私钥,认证中心的登录地址,认证中心登出地址)存储到联盟站点本地。
  3. 在认证中心上注册一新用户,注册用户需要使用IUser接口
  4. 在联盟站点对认证中心发出登录请求
  5. 认证中心验证登录请求
  6. 在认证中心进行登录
  7. 登录成功后,保存登录票据,认证中心对联盟站点发送登录答复,并将此次登录记录到登录站点清单
  8. 联盟站点接收到登录答复后,先进性验证,正确后,根据登录答复中的信息产生用户登录票据,并且更新联盟用户登录数和登录列表
  9. 在联盟站点中发出登出请求
  10. 认证中心验证登出请求,正确的话,销毁认证中心用户登录票据,通过用户的登录站点清单,逐个调用联盟站点的登出页面
  11. 在认证中心回调联盟站点的登出页的时候,联盟站点会在登出页中销毁各个的登录票据,并更新在线用户数和用户列表。

 

3 ISite接口设计说明 

3.1 接口描述

ISite接口包括7个属性和2个方法,分别用于在认证中心用于描述和操作站点的配置

信息。














其中,各个属性的含义如下

属性名称

类型

含义

SiteID

string

站点编号,用于表示站点的唯一性。

HomePage

string

当登录请求中未提供来源网址项的时候,登录答复发送的地址

LogOutUrl

string

在进行统一登出的时候,回调的联盟站点页面地址,这个页面会负责销毁本站的登录票据信息。

PublicKey

string

用于数据交换时加密或签名用的公钥

PublicAndPrivateKey

string

用于数据交换时加密或签名用的私钥

FromUrlKey

string

用于指示联盟站点在发送登录请求和认证站点进行请求验证的时候来源网址存储位置。

UidField

string

用于指示联盟站点在发送登录请求和认证站点进行请求验证的时候用户信息的存储位置。

还包括两个方法,分别为:

方法名

含义和作用

Add

添加新的联盟站点。

Validate

验证联盟对象是否已经存在

3.2功能

该接口能在认证中心完成新联盟站点添加操作,添加之前可以验证站点是否存在。

3.3 默认实现

在SSO组件中,已经实现了一个默认的ISite对象。为DefaultServer/ DefaultSite.cs,它将放置在认证中心根目录下的sites.config文件作为存储介质,通过Add方法添加新联盟站点后的效果为:附件中的site.config文件,可自行下载文件后,看其结构。

 

 

4 IUser接口设计说明

4.1接口描述

IUser接口包括2个属性和2个方法,用于在认证中心端描和操作述联盟用户。

其中,各个属性的含义如下

属性名称

类型

含义

Uid

string

用户编号,是用户的标识

Pwd

string

用户密码

还包括两个方法,分别为:

方法名

含义和作用

Validate

验证用户是否存在

Register

添加新用户

4.2功能

该接口能在认证中心完成新联用户添加操作,添加之前可以验证用户是否存在。

4.3 默认实现

在SSO组件中,已经实现了一个默认的IUser对象。为DefaultServer/ DefaultUser.cs,它将放置在认证中心根目录下的users.config文件作为存储介质,通过Register方法添加新联盟用户的效果为:附件中的users.config文件,可自行下载文件后,看其结构。

 

 

5 IUserLoginList接口设计说明

5.1接口描述

IUserLoginList接口包括3个方法,用于在认证中心描述和操作用户登录的站点清单。

还包括三个方法,分别为:

方法名

含义和作用

Add

验证用户是否存在

GetLoginSites

获取用户的登录站点清单

DeleteUser

删除用户的登录站点清单数据

5.2功能

该接口在认证中心用于用户记录和维护用户登录的站点清单  

5.3 默认实现

在SSO组件中,已经实现了一个默认的IUserLoginList对象。为DefaultServer/ UserLoginLog.cs,它通过一个Collection对象来实现用户登录站点清单的维护工作。

 

 

6 IServer接口设计说明

6.1接口描述

IServer接口包括2个属性和5个方法,用于接收,验证登录请求,发送登录答复,接搜,验证登出请求,创建本地登录票据,维护用户登录清单。

两个属性为:

属性名称

类型

含义

Site

ISite

当前上下文处理请求和答复的站点对象

Uid

string

当前处理的上下文中的用户编号

 

还包括三个方法,分别为:

方法名

含义和作用

CheckUser

验证用户对象是否存在

CheckExistToken

验证登录票据已经存在

SaveToken

在认证中心本地保存登录票据

Jump

通过url跳转,发送登录答复

LogOut

统一登出。

6.2功能

该接口在认证中心,用于接收,验证登录请求,发送登录答复,接搜,验证登出请求,创建本地登录票据,维护用户登录清单

6.3 默认实现

在SSO组件中,已经实现了一个默认的IServer对象。为DefaultServer/ LoginRequest.cs。

 

 

7 ILoginRequest接口设计说明

7.1接口描述

ILoginRequest接口包括2个属性,用于记录和描述联盟站点的登录请求,这些信息在发出登录请求的时候创建,在收到登录答复的时候销毁。用于确保登录答复的不可复用性。

两个属性为:

属性名称

类型

含义

Identity

string

登录请求标志符,该标志符会发送给服务端,服务端在发送登录答复的时候会回传该标志,联盟站点会根据此标志来验证请求是否是伪造的。

TimeStamp

DateTime

请求的时间戳

7.2功能

该接口在联盟站点,用于记录和描述联盟站点的登录请求,这些信息在发出登录请求的时候创建,在收到登录答复的时候销毁。用于确保登录答复的不可复用性。7.3 默认实现

7.3 默认实现

在SSO组件中,已经实现了一个默认的ILoginRequest对象。为DefaultServer/ LoginRequest.cs。

 

8 ILoginRequestContainer接口设计说明

8.1接口描述

ILoginRequestContainer接口包括3个方法,用于在联盟站点中记录和维护登录请求

 

方法名

含义和作用

Add

添加登录请求信息

Check

检查登录请求是否存在

Remove

销毁存在的登录请求

8.2功能

该接口在联盟站点,用于在联盟站点中记录和维护登录请求

8.3 默认实现

在SSO组件中,已经实现了一个默认的ILoginRequestContainer对象。为DefaultServer/ LoginRequestContainer.cs。

 

9 IUserStateContainer接口设计说明

9.1接口描述

IUserStateContainer接口包括5个方法,用于在联盟站点中记录和维护在线联盟用户信息

 

方法名

含义和作用

Add

添加登录用户

GetList

获取在线用户清单

Check

检查某个用户是否已经在线

Remove

移除某个在线用户。

GetUserCount

获取在线用户个数

9.2功能

该接口在联盟站点,用于在联盟站点中记录和维护在线联盟用户信息

9.3 默认实现

在SSO组件中,已经实现了一个默认的IUserStateContainer对象。为DefaultServer/ UserState.cs。

 

 

10 IClient接口设计说明

10.1接口描述

IClient接口包括6个属性和2个方法,用于发出登录请求和登出请求

8个属性为:

属性名称

类型

含义

SiteID

string

站点编号

PrivateKey

string

数据交换时加密或者签名用的公钥

LoginAddress

string

认证中心登录地址

LogoutAddress

string

认证中心登出地址

Uid

string

登录的用户编号

TimeOut

int

登录答复的超时时间,单位s

UidField

string

登录登出请求中的用户信息的存储位置

FromUrlField

string

登录请求中的来源网址存储位置

2个方法为

方法名

含义和作用

Login

发出登录请求,并处理登录答复

LogOut

登出

10.2功能

该接口在联盟站点,用于发出登录请求和登出请求

10.3 默认实现

在SSO组件中,已经实现了一个默认的IClient对象。为DefaultServer/ DefaultClient.cs

 

11 本系统的安全性

11.1 登录请求的格式

联盟站点向认证中心发送的登录请求格式如下:

站点信息+登录请求编号+时间戳+空用户信息+对站点信息和登录清秋号的签名信息。
除了签名信息之外的全部信息均为明文传送,但因为重要的数据均经过数字签名,结果是站点信息和登录请求编号是不能被篡改的,保证了认证中心收到的登录请求的真实性。

11.2 登录答复的格式

认证中心发给联盟站点的登录答复格式如下

登录用户信息+登录请求编号+时间戳+对用户信息和登录请求号和时间戳的签名信息
其中登录用户信息是经过非对称加密的。请求号和时间戳因为经过签名,故也不能篡改,这样就可以保证联盟站点收到的登录答复的真实性和完整性。并且非正常联盟站点无法解密用户信息,也无法从中获取好处。  

篇幅太大,下面还有很长的内容要说,先发布以下,感兴趣的朋友可以先下载程序尝试使用。以后,我会逐渐添加Sql 和 Oracle的实现。您也可以根据接口规范,开发符合自己系统需求的SSO系统,今天先到这吧

程序文件:/Files/jillzhang/SSO.rar


更新:新增登录流程图:

[原创]单点登陆(SSO)组件的设计与实现二-登录流程图 

 

作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Tag标签: SSO,单点登陆
posted @ 2008-01-31 20:33 Robin Zhang 阅读(9037) 评论(55)  编辑 收藏 网摘 所属分类: asp.net组件开发.net framework

  回复  引用  查看    
#1楼2008-01-31 21:37 | carysun      
我问下啊,我对这方面不太清楚
我们现在做的是windows的域帐号和domino帐号的SSO,用的websphere的插件在加上IIS的配置。
你做的这个是不同程序间的SSO吗?还是什么?

  回复  引用  查看    
#2楼[楼主]2008-01-31 21:44 | jillzhang      
@carysun
不同程序间的,更多情况下应用于不同域名间的

  回复  引用  查看    
#3楼2008-01-31 21:49 | TerryLee      
兄弟最近发文章很快啊:D
  回复  引用  查看    
#4楼[楼主]2008-01-31 21:55 | jillzhang      
@TerryLee
赫赫,最近比较闲,马上要过年了,总结一下

  回复  引用  查看    
#5楼2008-01-31 22:04 | vainnetwork      
不错很详细,感谢分享
  回复  引用  查看    
#6楼[楼主]2008-01-31 22:09 | jillzhang      
@vainnetwork
多谢支持

  回复  引用  查看    
#7楼2008-01-31 23:03 | Leem      
非常不错,与我最近开发的SSO方案基本一致.就是在登出上碰到一些问题.先看看你的代码是怎么实现的.
  回复  引用  查看    
#8楼[楼主]2008-01-31 23:16 | jillzhang      
@Leem
登出的时候,我采用的是认证中心要求用户浏览器请求联盟站点登出页

  回复  引用  查看    
#9楼2008-01-31 23:36 | 周银辉      
LZ辛苦了,这貌似文档而非普通BLOG哦
  回复  引用  查看    
#10楼[楼主]2008-01-31 23:56 | jillzhang      
@周银辉
恩,我参考国标的详细设计说明书写的
还不是特规范

  回复  引用  查看    
#11楼2008-02-01 00:05 | Axel      
楼主,你考虑了SSO的问题,但没有考虑SEO的问题。你具体实现后,可以看看google能不能收录你的站点。
如果你使用URL跳转的话。

  回复  引用  查看    
#12楼[楼主]2008-02-01 00:12 | jillzhang      
@Axel
我的跳转只发生一次,当联盟站点收到登录答复后,便创建了自己的登录票据,以后无须再去认证中心跳转。应该对SEO影响不大。

  回复  引用  查看    
#13楼2008-02-01 08:42 | 学者      
看了你的介绍不错 中国就需要 你们这些有共享精神的人, 少搞封闭 少搞盗版。
  回复  引用  查看    
#14楼[楼主]2008-02-01 09:02 | jillzhang      
@学者
谢谢鼓励,现在我定义好了规范,这个东西是放在明面上来的,可就算知道我的算法和规则,依然不能破解,这个我觉得也是一个优点

  回复  引用  查看    
#15楼2008-02-01 09:18 | onekey      
挺好的方案
  回复  引用  查看    
#16楼2008-02-01 09:21 | Rick Meta      
慢慢研究
  回复  引用  查看    
#17楼[楼主]2008-02-01 09:29 | jillzhang      
@Rick Meta
@onekey
上面只是介绍了下设计思路和接口规范
接下来我会将一些关键点写出来与大家分享
尤其是在安全性方面的改进上

  回复  引用  查看    
#18楼2008-02-01 09:55 | 亚历山大同志      
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
通过用户的登录站点清单,逐个调用联盟站点的登出页面
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


  回复  引用  查看    
#19楼[楼主]2008-02-01 10:03 | jillzhang      
@亚历山大同志

这样会有一些问题,就是它依赖于客户端
不过目前没想到更好的办法

  回复  引用    
#20楼2008-02-01 10:37 | testuser[未注册用户]
期待详细的介绍
  回复  引用  查看    
#21楼2008-02-01 11:03 | 大石头      
一大篇内容,大概看了一下,核心部分反而写得非常非常少。

关键点也没有突出。

我只关心跳来跳去、安全、退出等难题。

  回复  引用  查看    
#22楼[楼主]2008-02-01 11:08 | jillzhang      
@大石头
别急,会有的
欢迎继续关注

  回复  引用    
#23楼2008-02-01 21:51 | g510[未注册用户]
不错,既然写出来了,就值得鼓励。
有个问题,在不同平台下能否实现呢?就是存在asp、j2ee、php的其它平台,能否很好的实现SSO?

  回复  引用  查看    
#24楼[楼主]2008-02-01 21:56 | jillzhang      
@g510
可以,算法一样
只是需要不同语言的实现罢了

  回复  引用    
#25楼2008-02-02 02:12 | 网游天下[未注册用户]
算法看C语言就好了 实现方法不一样
  回复  引用  查看    
#26楼[楼主]2008-02-02 08:52 | jillzhang      
@网游天下
里面最主要的是利用了rsa算法,那这个算法有各自的c,java,.net实现

  回复  引用    
#27楼2008-02-02 23:19 | 问[未注册用户]
是不是统一登陆的?统一数据库的?
  回复  引用  查看    
#28楼[楼主]2008-02-03 08:51 | jillzhang      
@问
是同一登录
统一数据库的?
原则上,原来的联盟站点可以有自己的用户系统,但只要用这个,就能共用认证中心的公共用户。

  回复  引用  查看    
#29楼2008-04-05 06:14 | 悟道2008      
/*----------------------------------------------------------------
// Copyright (C) 2007 蚂蚁互动 版权所有。
//
// 文件名:UrlOper.cs
// 文件功能描述:
//
// 创建标识:jillzhang
// 修改标识:
// 修改描述:
//----------------------------------------------------------------*/
能告诉我你的这个代码文件里面的头是怎么搞的吗?先谢谢啊~还有是用的什么工具?麻烦大大给我发一份。。。呵呵o(∩_∩)o...谢谢了。。。

  回复  引用  查看    
#31楼2008-04-05 07:33 | 悟道2008      
@jillzhang
谢谢大大。。。

  回复  引用  查看    
#32楼2008-04-05 07:33 | 悟道2008      
永远支持你。。。我的朋友!
  回复  引用    
#33楼2008-05-05 14:40 | dahai702[未注册用户]
很好,谢谢,先下载一个研究研究
  回复  引用    
#34楼2008-08-18 00:10 | AndyHuang[未注册用户]
准备采用你这个解决方案做单点登录.并花一段时间进行研究..感谢你的共享!
  回复  引用    
#35楼2008-10-24 17:40 | 说真话的人[未注册用户]
不错,正要做这样的系统,相当的感谢!!!
  回复  引用    
#36楼2008-10-27 11:44 | 位绰[未注册用户]
不错,下载后,研究一下
  回复  引用    
#37楼2008-10-29 05:44 | xblan[未注册用户]
研究了下,发现几乎所有重要的东西都没有,只是简单的登录。其实我被单点登录这个问题困扰很久了。

假如有两个不同主域的站点,a.com,b.com,和一个认证站点,passport.com,用户在a.com通过passport.com登录,后打开两个以上的页面,又进入b.com(这里不需要再登录了,前面登录了)打开两个以上的页面,最后用户直接关闭所有网页,也可能电脑死机。

还有一个站点,c.com,此站不同于a.com和b.com,它不通过passport.com登录,使用自己的库,但用户必须在passport.com注册账号。

  回复  引用  查看    
#38楼[楼主]2008-10-29 08:55 | jillzhang      
@xblan
搞不清楚你说C站点有和企图?
而且你上面的表述也不太完整?
需要做什么呀?

  回复  引用    
#39楼2008-10-30 02:46 | xblan[未注册用户]
没说清楚吗?

其实我的意思很简单,就是用户只需要登录一次,就可以任意浏览所有联盟站点,不论他打开多少个页面,状态都是已登录的,无需再次登录,而当他关掉所有页面时,自动登出。

我想,要实现这样功能,是不是一定要cookie + session + Application三个配合呢?但cookie好像不能跨主域诶......可好多人都说能,这点我很郁闷,不知道js在客户端上能不能跨主域写cookie。

那个c站点,是我这几天想到的,现在很多门户站都有网游,游戏服务器的有自己的数据库,而且验证也是在自己的库中。有些门户站需要用户手动激活,有些则是自动。


  回复  引用  查看    
#40楼[楼主]2008-10-30 09:27 | jillzhang      
@xblan
如果你能在登陆一个站点中完成,关闭页面,自动登出,那在我这个sso也是可以实现你的目的的
如果连一个站点都完不成的话,那肯定SSO也完不成了
我这个方案主要体现在单点上面,登陆的事情,自己可以解决
对你后面描述还是感觉你对SSO的方案认识还不是深刻.建议你下载我的代码或者其他人的仔细研究一下

  回复  引用    
#41楼2008-11-05 11:54 | 位绰[未注册用户]
比如有联盟站A(包括用户A1,A2,);联盟站点B(包括用户B1,B2)
那么此时的这些用户都存放在服务器端吗?
用户A1登陆站点A后,此时A1是联盟站点儿A的用户,不是联盟站点B的用户,这时候用户A1可以访问联盟站点B吗?

  回复  引用    
#42楼2008-11-06 13:07 | sail[未注册用户]
你画的流程图,怎么有点像时序图。
  回复  引用    
#43楼2008-11-18 12:02 | ytx983[未注册用户]
我想问一下,客户端不限制的吗?是不是cs和bs都可以实现?
  回复  引用  查看    
#44楼2008-12-01 13:10 | 北漂剑客      
看了楼主的单点登录,有两个问题请教:
1.配置的时候需要添加相应的网站,如果是泛解析的带二级域名的网站,不可能把所有的域名都添加进去,这时候应该怎么处理呢?
2.现在用户信息是写在config文件里的,有没有从数据库里读取的Demo呀?

  回复  引用    
#45楼2008-12-12 12:27 | 张亚林[未注册用户]
每个子系统都个自有自已的权限管理
请问一下,一个系统的用户一但登陆到另外一个系统它们怎样协调权限关系?

单点登陆一般都是后发的
以前碰到一个项目,单位以前就开发了一个项目管理系统,后来又做了个GIS系统,再后来又做了个OA,同属于用来管理国家一个大项目的综合办公。

后来我们碰到上,要我们做一个门户,把这些都挂上去,门户之间可进行切换,单点登陆。

晕!之前它们怎么就不去想想了,现在就去改吧!
用户与多个子系统的权限问题?、
有的用户在这个系统有,在别外一个系统没有?
有的系统是java,有的是.net?

  回复  引用    
#46楼2008-12-12 12:38 | 张亚林[未注册用户]
在没有做单点登陆之前
A系统里有用户A1
B系统里没有A1,有B1

单点登陆,B1登陆B系统之后,要直接进到A系统,怎么办?
B1在B系统有增加和删除权限
在A系统是否也有,或者是有其它权限?

  回复  引用    
#47楼2008-12-16 14:59 | 未注册用户[未注册用户]
IE7 当登录A站点后。在同一IE进程中新建选项卡,访问B站点。单点登录成功。但是,当登录A站点后。又去打开另一个IE进程。在这个新打开的IE进程中访问B站点。单点登录失败。出现登录窗口。很大的缺陷
  回复  引用  查看    
#48楼2009-02-08 14:29 | 银河使者      
问一下楼主,这个SSO是否需要客户端使用证书?
  回复  引用  查看    
#49楼2009-02-09 09:01 | 無語      
学习学习哈哈~~~~
  回复  引用  查看    
#50楼2009-03-16 16:11 | Zhougm      
很好,谢谢,不知能否实现同一用户名不能同时登陆.不正常退出的用户SSO如何处理,可否提供你最新的SSO源码实例啊。
  回复  引用  查看    
#51楼2009-05-07 11:35 | 小隐任行      
貌似只能在.net之间使用,甚至web 与 winform都有问题,既然是SSO,就要考虑很多情况,这些类啊方法什么的,在和那些古老的语言开发的系统上进行SSO,很难用得了
  回复  引用    
#52楼2009-05-08 09:53 | anchovy[未注册用户]
请问楼主一个问题,比如说有A,B两个站点。A站点为中心站点。B是联盟站点。如果B我不能再次开发,比如他的权限验证是他单独的。要和A结合成单点登陆有没有办法了。有办法是如何实现的了
  回复  引用  查看    
#53楼2009-05-15 16:53 | .NET学徒      
感谢楼主分享!收藏研究一下,等有问题再请教楼主,谢谢!
  回复  引用    
#54楼2009-06-03 11:36 | 开发程序员10008[未注册用户]
楼主你好
我用你的项目登出时碰到点问题
就是登出一个client时,其他client并未登录,仍然是登陆状态
看到登出时输出的iframe没有结尾</frame>,我把<iframe .. />
改成 <iframe ...></iframe>就好了, 我用的是firefox3.0

  回复  引用    
#55楼2009-06-23 16:30 | star17365[未注册用户]
http://www.cnblogs.com/jillzhang/archive/2008/01/31/1060379.html
你好,我是从这里看到你的解决方案的,想请假楼主一个问题
假设现在有3个应用程序 而这3个应用程序有3个不同的账号 现在我想通过认证服务器注册的账户去绑定这3个不同的账户到每一个应用程序中去
就是 我现在以认证中心注册的账号登录了 也可以 访问3个应用程序




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1060379




历史上的今天:
2007-01-31 近期项目的一些代码总结
2007-01-31 平台调用数据类型

相关文章:

相关链接: