如何在报表权限中使用session

1. 问题描述

权限中使用session,一般是用来存放用户名和密码,下面以报表开发工具FineReport为例,分两种情况介绍用户名和密码的保存:

2. 同一应用下session

由于session中能够保存key,因此在权限中如果报表工程与自己的工程在一个应用下面,即session相同,此时将用户名与密码存放于session中,在浏览器端将外界输入的用户名和密码保存至session,报表服务器便可以获得用户名与密码,去相应的地址匹配,匹配成功,通过权限关卡,匹配失败,跳转登录页面。

3. 不同应用下session

不在同一个应用环境下,session不能直接获取到,要实现单点登录的效果,在项目登陆界面把用户名和密码传给报表服务器通过fs_load&cmd=sso方法进行验证,验证成功则把用户名和密码及角色以session方式保存在报表服务器端,此时的应用session和报表session,不是同一个session,相对独立,互不影响。

跨域项目和跨语言项目都属于不同应用下的工程,此时session是不能共用,不是同一个session,所以在注销用户的同时触发一下报表方法:/WebReport/ReportServer?op=fs_load&cmd=ssout,则可使用户session同步的效果。权限中session的定义及注销可参考Finereport帮助文档:跨域单点登录。

时间: 2024-12-18 08:13:53

如何在报表权限中使用session的相关文章

权限组件之将登录用户权限写入到session中

1.登入admin,将销售员的权限改成只能查看订单列表 2.urls.py 3.views.py  这样的情况任何人都能访问 思考问题,怎么给页面加权限???? 将登录用户权限写入到session中 4.将登入用户权限列表写入到session里面.   session = { "user_id":1, "permission_list":['/users/', '/orders/'] } 5.访问用户列表.用户订单的时候,去session里面取值  (权限列表) 判

ASP.NET中在一般处理程序中使用session的简单介绍

这篇文章介绍了ASP.NET中在一般处理程序中使用session,有需要的朋友可以参考一下 <%@ WebHandler Language="C#" Class="ChangePwd" %> using System; using System.Web; using System.Web.SessionState; public class ChangePwd : IHttpHandler, IReadOnlySessionState { public

【JAVA学习】struts2的action中使用session的方法

尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到1.通过ActionContext class中的方法getSession得到2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到sessi

ASP.NET中的Session怎么正确使用

Session对象用于存储从一个用户开始访问某个特定的aspx的页面起,到用户离开为止,特定的用户会话所需要的信息.用户在应用程序的页面切换时,Session对象的变量不会被清除. 对 于一个Web应用程序而言,所有用户访问到的Application对象的内容是完全一样的:而不同用户会话访问到的Session对象的内容则各不相 同. Session可以保存变量,该变量只能供一个用户使用,也就是说,每一个网页浏览者都有自己的Session对象变量,即Session对象具有唯一 性. 什么是Sess

php.ini中的session配置说明

下面介绍能让session运行的必要配置步骤 手动配置PHP运行环境时,最容易遗忘的一项是服务器端session文件的存储目录配置工作,打开php.ini文件,搜索Session,找到session.save_path,默认值为/tmp,代表session文件保存在c:/tmp目录下,默认tmp目录并没有创建,你可以在c盘下创建tmp目录,或者创建一个其他目录,比如leapsoulcn,再修改session.save_path的值,并去掉;,即 session.save_path = ‘/lea

ASHX中引用Session 出现“呈现未将对象引用设置到实例上”

在ASHX一般处理程序文件中如需调用Session必须继承System.Web.SessionState.IRequiresSessionState接口,才能实现Session读写! System.Web.SessionState的接口介绍: IReadOnlySessionState 指定目标 HTTP 处理程序只需要具有对会话状态值的读访问权限.这是一个标记接口,没有任何方法. IRequiresSessionState 指定目标 HTTP 处理程序需要对会话状态值具有读写访问权.这是一个标

PHP中的session永不过期的解决思路及实现方法分享

打开php.ini设置文件,修改三行如下: 1.session.use_cookies  把这个的值设置为1,利用cookie来传递sessionid  2.session.cookie_lifetime  这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以PHP的 session不能永久使用! 那么我们把它设置为一个我们认为很大的数字吧,999999999怎么样,可以的!就这样.  3.session.gc_maxl

ashx页面中context.Session[&quot;xxx&quot;]获取不到值的解决办法

1.在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法不变. 2. 在ashx文件中,若要对Session进行成功的读写,应该在使用 Session的class后增加接口IRequiresSessionState (添加 时可能提示添加命名空间 using System.

Lumen中启用session

原文链接:http://www.jianshu.com/p/dc33f8ab0618 Lumen5.2 的Release Notes中官方明确的指出Lumen专注于构建无状态API,JSON API 服务,移除了session和view的支持,但其实view还是存在的,session确实真的被移除了 因为项目需要所以我决定找回session,虽然官方建议需要session功能时可以使用强大的Laravel框架,但是对我小项目确实有点大材小用了.因为喜欢Laravel的优雅,所以我在小项目中都会把