[导入]跨平台跨服务器跨网站SSO(单点登录)的方案
最近在研究 SSO ,看到各种复杂的解决方案觉得很疑惑,自己想出了个简单有效的方案,大家来评评有什么问题吗? 服务器 A :网站 A 服务器 B :网站 B 服务器 C :验证网站(验证表中有 UID 和 KEY 两个字段)。 1. 用户打开网站 A 的页面 http:// 服务器 A/a.aspx ,检测发现网站 Session 中没有存储用户名 UID 。 2. 系统转到验证服务器登录页面,并在 QUERYSTRING 中附加前一个页面的 URL 地址。比如 http:// 服务器 C/login.asp?URL=http:// 服务器 A/a.aspx 3. 在验证服务器登录成功后更新验证服务器的 Session (超时设置为足够长,比如 1 天)。然后生成一个 GUID 值,写入验证表。最后,把这个 GUID 值和 UID 保存到一个类中序列化后附加在 URL 中返回网站 A 的那个页面。比如 http:// 服务器 A/a.aspx? token =sadhsagdkjasgyugd7d8yweihasdiuhagsdiuashdhaiushdi 4. 网站 A 的页面读取 QUERYSTRING ,然后反序列化出一个类,读取类的 UID 和 KEY 信息。然后,从数据库中查找匹配的记录,如果找到了则表明登录成功,并把这条记录的 KEY 更新成另外一个 GUID