跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
2007-05-13 13:19
211 查看
从/article/4594068.html改进而来
登录
1. 打开A网站进行登录;
2. 检测Login服务器是否可用;
3. 如果Login服务器可用,检测发现Login服务器Session未创建;
4. 重定向到A网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据;
5. 得到的Key是1,说明Login服务器Session未创建,在A网站创建Session,登录完成后使用<script>访问Login服务器上的页面创建Session并记录网站名和网站登出页面地址;
6. 打开B网站登录,发现没有登录,检测Login服务器是否可用;
7. 如果Login服务器可用,检测发现Login服务器Session已经创建并记录网站名和网站登出页面地址;
8. 重定向到B网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据;
9. 得到的Key不是1,说明Login服务器Session已经创建,根据Key到数据库进行验证,验证通过后在B网站创建Session。
登出
1. 每个网站都有登出按钮,点击按钮后先清空本地Session;
2. 然后检测Login服务器是否可用;
3. 可用的话跳转到Login服务器的登出页面;
4. 根据Session中存储的已登录网站名和登出页面地址,生成<img>指向各个网站的登出页面;
5. 登出成功后登出页面显示图片(返回图片流),如果登出失败(页面不能访问)则显示本地登出失败图片。
特点
1. Login服务器就算Down了各个网站也能分别登录和登出;
2. 巧妙使用临时GUID来做验证令牌;
3. 巧妙使用script和img的src来访问登录登出页面创建和撤销Session。
完整代码下载 http://www.cnblogs.com/Files/lovecherry/SSO.rar
本站下载此文件
注:Login和WebSiteTest分别是登录网站和测试网站。在测试的时候,WebSiteTest部署到2个服务器,Login部署到第三个服务器,注意修改WebsiteTest的web.config文件中的:
<appSettings>
<add key="RegLogin" value="http://pc-yzhu/login/default.aspx?key={0}logouturl={1}name={2}"/>
<add key="LoginUrl" value="http://pc-yzhu/login/default.aspx?url={0}logouturl={1}name={2}"/>
<add key="LogOutUrl" value="http://pc-ywgong/WebSite/LogOut.aspx"/>
<add key="name" value="WebSite"/>
</appSettings>
登录
1. 打开A网站进行登录;
2. 检测Login服务器是否可用;
3. 如果Login服务器可用,检测发现Login服务器Session未创建;
4. 重定向到A网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据;
5. 得到的Key是1,说明Login服务器Session未创建,在A网站创建Session,登录完成后使用<script>访问Login服务器上的页面创建Session并记录网站名和网站登出页面地址;
6. 打开B网站登录,发现没有登录,检测Login服务器是否可用;
7. 如果Login服务器可用,检测发现Login服务器Session已经创建并记录网站名和网站登出页面地址;
8. 重定向到B网站的页面,接受Login服务器传来的Key和UID组成的类序列化后的数据;
9. 得到的Key不是1,说明Login服务器Session已经创建,根据Key到数据库进行验证,验证通过后在B网站创建Session。
登出
1. 每个网站都有登出按钮,点击按钮后先清空本地Session;
2. 然后检测Login服务器是否可用;
3. 可用的话跳转到Login服务器的登出页面;
4. 根据Session中存储的已登录网站名和登出页面地址,生成<img>指向各个网站的登出页面;
5. 登出成功后登出页面显示图片(返回图片流),如果登出失败(页面不能访问)则显示本地登出失败图片。
特点
1. Login服务器就算Down了各个网站也能分别登录和登出;
2. 巧妙使用临时GUID来做验证令牌;
3. 巧妙使用script和img的src来访问登录登出页面创建和撤销Session。
完整代码下载 http://www.cnblogs.com/Files/lovecherry/SSO.rar
本站下载此文件
注:Login和WebSiteTest分别是登录网站和测试网站。在测试的时候,WebSiteTest部署到2个服务器,Login部署到第三个服务器,注意修改WebsiteTest的web.config文件中的:
<appSettings>
<add key="RegLogin" value="http://pc-yzhu/login/default.aspx?key={0}logouturl={1}name={2}"/>
<add key="LoginUrl" value="http://pc-yzhu/login/default.aspx?url={0}logouturl={1}name={2}"/>
<add key="LogOutUrl" value="http://pc-ywgong/WebSite/LogOut.aspx"/>
<add key="name" value="WebSite"/>
</appSettings>
相关文章推荐
- [导入]跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
- 跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
- 跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
- [导入]跨平台跨服务器跨网站SSO(单点登录)的方案
- 跨平台跨服务器跨网站SSO(单点登录)的方案
- 网站通行证方案-单点登录SSO
- 服务器修改端口后,"sa登录失败" 问题解决方案
- SSO单点登录一(Spring+SpringMVC+固定密码)实现的简单的同域SSOdemo
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 基于.Net的单点登录(SSO)解决方案(简易方案以及后续更新成熟方案)
- sso单点登录两种方案与优缺点
- 已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- 网站跨站点单点登录SSO
- 网站前端服务器高可用方案
- 安装网站时出现“连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定”解决方法
- sql server 2005 连接不到服务器 "已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
- [JSP 网站开发] 用户登录信息同步显示方案(struts2,jQuery)
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站服务器被挂马的处理方案