单点通行证的一种策略。:公司要用ASP.NET2.0开发一个新平台,用户要求与现在的Oblog中的所有用户同步。并且要实现单点登录,全站(有跨主域名的栏目)通用。这真的是非常郁闷的事情: 一个是ASP.NET、一个中ASP两个主域名也不同可能布置在不同服务器以后扩展平台也将共用这个通行证。

吕的部落格唯女子与小人为难养也近之则不孙远之则怨

单点通行证的一种策略。

公司要用ASP.NET2.0开发一个新平台,用户要求与现在的Oblog中的所有用户同步。并且要实现单点登录,全站(有跨主域名的栏目)通用。这真的是非常郁闷的事情:
  1. 一个是ASP.NET、一个中ASP
  2. 两个主域名也不同
  3. 可能布置在不同服务器
  4. 以后扩展平台也将共用这个通行证。
想了好久,放弃了什么Session、Cookie的想法。但Session给我启发,另外想到了Google的单点登录方式,特别是Blogger的登录,其环境与我现在所要处理的环境一样。于是一个伪Session的通行证想法就出现了。

之前我也想过,在单点登录时写入多个主域的Cookie,但想到,应该是其它平台使用通行证的接口,而不是让通行证来不断地兼容扩展的应用平台。好了,就简单说一下,如何实现这个简单而又实用的想法吧。

登录注册我想谁都可以处理,关键是如何做到同步。就像前面提到的那样,如何把Oblog的登录同步到现有的通行证中。
说起来很简单。就是:
  1. Oblog中的验证是否已登录。
  2. 如果没用登录,使用脚本转到通行证的验证页,如http://passport.xx.com/Check?url=http://www.xxx.com/loginIframe.asp
  3. 在http://passport.xx.com/Check验证当前用户是否登录,登录则在数据库中产生一条记录,包含:GUID,登录时间,登录IP,用户名。同时返回到http://www.xxx.com/loginIframe.asp?guid=GUID.失败则转到通行证的登录页,记得仍然要保存好最终要返回的页面。
  4. http://www.xxx.com/loginIframe.asp?guid=GUID中 查找与GUID关联的那条记录,如果IP,过期时间正确,则可以在Oblog中写入验证信息了。(这里的查找GUID记录,我是使用通行证提供的一个 WEB服务及ASP中的XMLHTTP完成的。WEB服务中,收到GUID,就开始查询符合要求的记录,返回一个用户名,如果返回为空,则为没有符合要求 的记录。)
主验证过程就是这样,使用URL传递本来Cookie要做的事,使用数据库完成本来Cookie与Session要完成的事。整个验证已经通过测试,并且验证过程放在Iframe中完成,用户几乎没有多少感觉。

在定下使用这个简漏的通行证方案之前,我也翻阅查找了好多资料。但都无法解决现在的问题。
如果您有更好的方案,忘赐教,不胜感激。
所属分类:杂七杂八标签:asp.net通行证 单点通行证一种策略 吕 @ 2007年3月21日8点44分 AM 编辑 单点通行证的一种策略。阅读(1963) 评论(0)

相关文章

评论

还没有评论
未开放评论

谷歌中单点通行证的一种策略。相关文章

数据加载中,请稍候……