赞
踩
原作2006 年6月15日,运行了3年了,一切正常。转自我的MSN SPACE,包括评论的补充
仲仓戟(离开)
发表:
1、用户从A域登录通过S验证域验证可正常访问A域后,链接到B域或者通过地址栏直接访问B域,正常情况下不需要用户再次登录B域,但我感觉用户在B域没有任何用户信息(哪怕是用户ID)可以和S验证域进行验证,似乎行不通啊!是不是我还没理解到你的实现方法,能否就此描述一下细节流程?
答:我采用的方法是,登陆B域,B域发现用户没有登陆过,则将用户自动重定向到S域,在S域通过COOKIE(SESSION已过期)或SESSION验证后再定向回B域实现B域自动登陆.如果重定向一次后还是没有登陆(说明用户原本就没登陆),则给用户在B域设置SESSION,在B域访问下一个页面时就不需要再去S域一次了.
2、“注销操作没办法做到各域同步,忽略这一问题,由各域自己控制用户超时量”,是不是说该实现方法出现以下情况是正常的:A域、B域、S验证域都留下登录COOKIE后,如果用户从A域注销,则A域、S验证域都被注销了,而B域还没有注销可正常访问,只是从B域切换到其他域时就要跳转到S验证域登录页面提示重新登录?如果是这样,最后这次S验证域的登录和此前的B域登录COOKIE信息是否会有冲突?
A域和B域用的是SESSION控制,不留COOKIE,S验证域留COOKIE保证长时间可在线.如果其他域都注销,而B域还没注销,从B再到A的话同样在S域会验证一次,但由于用户访问B域根本不需要通过S域验证了,原本就已经登陆,因此不存在冲突的问题.
进一步想,是否可以考虑S验证域记录下用户单点登录后所访问的其他域的信息,同时每个域都有自己的一个注销webservice,当用户从任何域注销的时候,由S验证域根据用户访问域记录主动逐一发起对应域的注销。请Chocobo一起来考虑这个方法的可行性。
答:主动发起注销是可行的,事实上我部分域里就设置了WEBSERVICE,用来同步一些信息,比如论坛的名称/社团的名称等.但如果域多了,注销时间就会很长,而一般服务器SESSION超时时间都设置为20分钟,关闭浏览器就自然试销,因此只要确保S验证域注销就可以了.
3、还是注销的问题,就是当用户不注销直接关闭浏览器时,因为各域的COOKIE时长不同,可能还有不少在用户再次登录的时候还没有过期,是否会引起最近一次登录后访问各域出现问题?
答:不会的,因为各域除了S域其他都是通过SESSION来控制用户,SESSION在用户关闭浏览器后就会注销.再开浏览器相当于用户没有登陆过该域.整个登陆流程和之前正常情况是一致的.
我在近几个月已经开了好几个子站了,虽然处于同一台服务器上,但分开放服务器也没有影响.http://sd.qiak.com,数独子站;http://www.ffsky.cn,专题子站;http://bbs.ffsky.com,论坛子站;http://www.duose.com,多色相册;http://www.qiak.com,恰客社团.用下来没什么问题,碰到的部分问题也是在流程中对后台数据库操作的问题,对流程没有大的问题.
8 月 24 日
| |
|
marmot
发表:
Chocobo,拜读了你的文章,思路还不是很清楚,请进一步指教以下问题:
1、用户从A域登录通过S验证域验证可正常访问A域后,链接到B域或者通过地址栏直接访问B域,正常情况下不需要用户再次登录B域,但我感觉用户在B域没有任何用户信息(哪怕是用户ID)可以和S验证域进行验证,似乎行不通啊!是不是我还没理解到你的实现方法,能否就此描述一下细节流程?
2、“注销操作没办法做到各域同步,忽略这一问题,由各域自己控制用户超时量”,是不是说该实现方法出现以下情况是正常的:A域、B域、S验证域都留下登录COOKIE后,如果用户从A域注销,则A域、S验证域都被注销了,而B域还没有注销可正常访问,只是从B域切换到其他域时就要跳转到S验证域登录页面提示重新登录?如果是这样,最后这次S验证域的登录和此前的B域登录COOKIE信息是否会有冲突?
进一步想,是否可以考虑S验证域记录下用户单点登录后所访问的其他域的信息,同时每个域都有自己的一个注销webservice,当用户从任何域注销的时候,由S验证域根据用户访问域记录主动逐一发起对应域的注销。请Chocobo一起来考虑这个方法的可行性。 3、还是注销的问题,就是当用户不注销直接关闭浏览器时,因为各域的COOKIE时长不同,可能还有不少在用户再次登录的时候还没有过期,是否会引起最近一次登录后访问各域出现问题? 很希望将您的经验应用上,所以提了以上问题,请不吝赐教!衷心谢谢!
8 月 23 日
|
|
陆行鸟Chocobo
发表:
客户端SESSION仅是举例,也可以用.NET的IDENTY等方式.只要是判断用户是否登陆即可.作为客户端,只要判断用户是否登陆,如果没有的话转到验证域,解析验证域返回的字符串,通过WEBSERVICE获取IV量再验证,如果验证通过则设该用户为登陆.
6 月 17 日
|
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。