1. 概述
权限中使用 Session,一般是用来存放用户名和密码,下面分两种情况介绍用户名和密码的保存。
2. 同一应用下 Session
由于 Session 中能够保存 key,因此在权限中如果报表工程与自己的工程在一个应用下面,即 Session 相同,此时将用户名与密码存放于 Session 中,在浏览器端将外界输入的用户名和密码保存至 Session,报表服务器便可以获得用户名与密码,去相应的地址匹配,匹配成功,通过权限关卡,匹配失败,跳转登录页面。
3. 不同应用下 Session
不在同一个应用环境下, Session 不能直接获取到,要实现单点登录的效果,在项目登录界面把用户名和密码传给报表服务器通过fs_load&cmd=sso方法进行验证,验证成功则把用户名和密码及角色以 Session 方式保存在报表服务器端,此时的应用 Session 和报表 Session,不是同一个 Session,相对独立,互不影响。
跨域项目和跨语言项目都属于不同应用下的工程,此时 Session 是不能共用,不是同一个 Session,所以在注销用户的同时触发一下报表方法:/webroot/decision?op=fs_load&cmd=ssout,则可使用户 Session 同步的效果。
权限中 Session 的定义及注销可参考文档:跨域单点登录。