数据报表FineReport7.1.1
大小:148.2M 适用平台:windows/linux
系统本身有独立的登录验证方式如下图:
触发报表验证方法报表集成时不需要再一次进行登录验证,只需在项目里面的登录验证页面内触发一下报表方法,如下js方法: function doSubmit() { var username =document.getElementById('username').value; //此处是用来提取用户名和密码 var password =document.getElementById('userPwd').value; var scr = document.createElement('iframe'); //创建iframe var dt=new Date(); scr.src = '/WebReport/ReportServer?op=fs_load&cmd=sso&username=' + username + '&password=' + password+'&time='+dt.toString(); //将报表验证用户名密码的地址指向此iframe document.getElementsByTagName('head')[0].appendChild(scr); //将iframe标签嵌入到head中 }
注:此处的单点登录是登录报表管理平台,而不是数据决策系统,如果需要与数据决策系统做单点登录,需将 scr.src = ' http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso&username=' + username + '&password=' + password;改成 scr.src = ' http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso&username=' + username + '&password=' + password;
实现过程点击项目里面的登录按钮,跳到后台进行项目里面的验证,而我们报表的验证方式需要在页面前台内调用javascript的方式触发,这边类似定义了两个onclick事件,而.net不能同时触发两个onclick事件,所以先要触发完一个onclick事件后再触发另一个,考虑报表没有验证完.net项目就跳转的话,导致报表没有验证成功,所以点击登录按钮首先触发报表验证方法,其次再到.net后台进行验证。
触发.net前台触发前台报表验证方法,新建一个登录按钮,设置按钮OnClientClick属性为:OnClientClick='doSubmit();return false;',即触发前台doSubmit()方法,doSubmit()方法,首先把获取的用户名和密码的值,发送到报表系统,报表服务将带着这两个参数访问认证地址进行认证。而项目本身有个登录按钮是触发的项目后台的方法,我们这边首先触发报表前台再通过js的方式触发后台的那个登录按钮,所以这边需要把之前的登录按钮设置隐藏,属性为Style='display: none;'。
触发.net后台报表验证完再触发.net项目后台登录验证的方法,通过登录按钮ID为Button1,使用document.getElementById('Button1').click();触发登录按钮,但是每个浏览器执行的方式不同,所以这边需要判断一下,代码如下: if (scr.attachEvent){ //判断是否为ie浏览器 scr.attachEvent('onload', function(){ //如果为ie浏览器则页面加载完成后立即执行 var f = document.getElementById('Button1'); f.click(); }); } else { scr.onload = function(){ //其他浏览器则重新加载onload事件 var f = document.getElementById('Button1'); f.click(); }; }
登录前台页面下面以简单的登录验证页面login.aspx为例,head中调用javascript触发报表方法:<%@ Page Language='C#' AutoEventWireup='true' CodeFile='login.aspx.cs' Inherits='login' %>
注销用户当注销项目用户时,同时也希望注销报表用户名的session,这时可在点击退出按钮时调用一下报表登出方法:/WebReport/ReportServer?op=fs_load&cmd=ssout就可以实现FR报表的退出登录。
平台设置一般情况下报表集成到.net系统,首先登录访问.net的项目,所以自定义登录页面访问地址可以不需要设置,如果没有登录到.ne项目,先访问我们的报表了,而这时访问报表的登录页面是报表内置的登录界面,需使用自动登录页面地址为您系统的登录地址,操作如下:打开http://localhost/WebReport/ReportServer?op=fr_platform,FR管理平台,选择权限配置>登录设置,自定义登录页面访问地址上,输入自己的登录页面路径http://localhost/FRtest/login.aspx,如下图所示:
注:若使用项目登录界面的话,必须要把是否使用finereport内置登录页面后面的勾去掉。验证成功后跳转页面:指定义好权限后,用户访问系统,若他是直接输入的登录地址,那么登录成功后会自动跳转到指定的页面,若他是访问报表系统中的其他地址,比如访问的是一张模板,那么若该用户没有登录过,会先弹出登录界面,登录成功后跳转到访问的那个地址。