当前位置:编程学习 > C#/ASP.NET >>

|zyciis| 不同域如何来实现单点登录 谢谢 急

如我有网站
www.a.com
www.b.com
----------
b.com是新添加的网站,但他的用户数据全为a.com的用户,
用户要求在a.com登录后去访问b.com的时候就是自动登录的
同理b.com登录后去访问a.com也是自动登录的
但问题是:
a.com和b.com不为同域,所以没有办法用cookie来做认证

大家有什么办法?

因为b.com是一个类似管理的东西
所以我现在就在b.com的PageLoad的时候判断登录了没有,如果没有登录就跳到a.com的一个页面
在a.com中判断是不是在a.com登录了,再把登录信息传给b.com
显示这样可以实现在a.com登录后自动登录b.com
但没有办法实现b.com去自动登录a.com(因为a.com是门户型的)
还有一个问题就是a.com注销后b.com并没有注销

大家有什么办法

谢谢 --------------------编程问答-------------------- 如果
www.a.com
www.b.com
都是asp.net 2.0 以上版本实现的,最简单的方法是使用Session的StateServer

asp.net服务器端Session存储在进程外(StateServer)
mode="StateServer" stateConnection="tcpip=192.168.1.101:42424". --------------------编程问答-------------------- Single Sign On (SSO) for cross-domain ASP.NET applications:

http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic

http://sso.codeplex.com/
--------------------编程问答-------------------- www.a.com 为 jsp
www.b.com 为 .net 3.5
--------------------编程问答-------------------- 你可以看看这个文章,明白了原来,什么类型的网站都可以实现了

http://www.iteye.com/topic/1039052 --------------------编程问答-------------------- 客户端浏览器访问A -> A重定向到B-> B弹出验证-> 验证结束后Require浏览器写B的Cookie,存储令牌,并将页面Post回A,附带登陆后的信息 -> A读取这部分信息,并Require浏览器写A的Cookie。

如果C也需要B做登录服务器,则从C重定向到B,这时候客户浏览器存储有B的Cookie,则读取该Cookie,验证该令牌的有效性,有效则直接将该令牌对应的用户信息Post到C,无效则弹出验证框,执行上一部A->B->A的弹出验证框之后的逻辑。


全程HTTPS,确保Cookie相对安全。


原理就是这些了。 --------------------编程问答--------------------
引用 5 楼 sunzongbao2007 的回复:
有效则直接将该令牌对应的用户信息Post到C,无效则弹出验证框,执行上一部A->B->A的弹出验证框之后的逻辑。


将A替换为C而已。

其中Reply地址和客户服务端对Cookie的读取分析模块自己愿意定义就定义,不愿意定义就随着用随写。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,