首页 新闻 赞助 找找看

网站两个域名,如何实现单点登陆(SSO)

0
悬赏园豆:100 [已关闭问题]

asp.net2.0网站,有两个访问地址,一个域名,一个是ip地址(必须保留ip,客户要求,没办法),使用form身份证验,并且session存在了数据库中,在尽量不改变代码的情况下,如何实现单点登陆,谢谢。

Tony Lu的主页 Tony Lu | 初学一级 | 园豆:32
提问于:2010-01-07 18:10
< >
分享
其他回答(1)
0

尽量避免使用IP,如果非要使用尽量写在配置文件中不要写死在代码中。

一般来说需要有一个passport,两个地址都需要有接收token的页面,用户在其中一个网站登录,先跳转到passport,实现登录,使用redirect带token参数返回那个网站,然后使用api带token访问passport验证有效性,如果token有效则实现登录。

passport两个功能:实质的登录动作并产生token,验证token有效性
其它网站都需要有一个从passport跳回的页面,可以去验证token

风海迷沙 | 园豆:4453 (老鸟四级) | 2010-01-08 11:11
没有那么多网站,就一个网站,相当于两个域名,一个域名下登陆了,转到另一个域名时,如何保持登陆状态。
支持(0) 反对(0) Tony Lu | 园豆:32 (初学一级) | 2010-01-11 09:36
0

这样怎么样:

1 用户无论从哪个域名登录后,都使用Javascript在本地写一个cookie,记录下sessionID

2 每个域名下的网页加载后都使用JS检查当前域名下是否有包含sessionID的临时cookie;

没有的话就调出那个本地cookie里的sessionID,异步传给送服务器让浏览器获得当前域名的临时cookie

vons | 园豆:1033 (小虾三级) | 2010-01-14 20:54
或者还有更简单的:使用JS偷建一个0像素的iframe,地址为域名B的当前页或其他定义好的专门的页面。用户在域名A点击登录后,使用JS在iframe里(即域名B)同样一起登录。 这样一次登录,2个域名都获得cookie了。
支持(0) 反对(0) vons | 园豆:1033 (小虾三级) | 2010-01-14 21:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册