单点登陆最简单解决方案

时间:2023-01-23 13:12:37
服务器A:网站A 服务器B:网站B 服务器C:验证网站(验证表中有UIDKEY两个字段)。 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,然后反序列化出一个类,读取类的UIDKEY信息。然后,从数据库中查找匹配的记录,如果找到了则表明登录成功,并把这条记录的KEY更新成另外一个GUID(这样就保证了即使这个URL被别人拿走再登录都不能成功)。把UID写入服务器ASession中即可。 5.       用户打开网站B的页面http://服务器B/b.aspx,服务器B上没有当前用户的Session信息,自动转向验证服务器检测是否存在Session,如果找到了表明用户已经登录过,再重复步骤34,如果没有找到就转到验证服务器的登录页面。