因最近客户公司一直在讨论单点登录,我个人觉得单点登陆复杂的可以很复杂,简单的可以很简单。
总体来说单点登录,就是提供一个登陆入口,对相关联的系统用户登录进行相关控制,所有的系统登录都有这个入口进入,在使用所有的系统中只要登录一次 就能进入相关系统。(注:我这里所描述的单点登录 只是我个人的理解,不是专业术语 具体请看:点击打开链接)
在演示的demo中 主要分为3个模块:登录服务,客户端系统1,客户端系统2.
主要实现原理:首先用户 打开 客户端系统1 或者客户端系统2 的页面,系统判断用户是否登录,如果没有登录,则指向登录服务的登录界面,和以往的不同之处,是系统在判断没有登录权限之后,是重定向到当前的系统登录界面,而单点登陆不是,必须冲定向到登陆服务登录界面
页面跳转层次:用户输入 WebClientOne 的Index.aspx界面,后台代码进行判断是否有登录权限 没有登录权限 重定向到 WebService的Login.aspx界面 并带上相应参数 WebType。用户在登录界面进行登录,登录完成后 向浏览器中写入 Cookie_UserID和Cookie_Key cookie值,并根据WebType的参数值,重定向到相应客户端系统的登录接口 也就是 WebClientOne 的Login.aspx 并附加相应参数 UserID和Key。WebClientOne 的Login.aspx 后台代码根据获取的参数进行内部系统的权限分配。
整体上 一次登陆完成,在使用其他系统时,请求过程以及原理都一样,不过登录过一次之后就不需要在进行登录,因为 已经写入了 Cookie_UserID和Cookie_Key 这两个cookie值,如果这个两个值删除掉 则需要再