登入平台時,不希望使用FR預設的內建登入介面,想透過自訂登入介面實現登入操作,內建登入介面如下圖:
登入介面,取得到使用者名稱和密碼的值,傳送到報表系統,報表服務帶著這兩個參數存取認證位址進行認證。
自訂登入介面
#登入介面設定
#自訂html登入頁面:命名為login.html,並儲存在%FR_HOME%\WebReport下,程式碼如下:<span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px;"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script>
<script type="text/javascript">
function doSubmit() {
var username = FR.cjkEncode(document.getElementById("username").value); //获取输入的用户名
var password = FR.cjkEncode(document.getElementById("password").value); //获取输入的参数
jQuery.ajax({
url:"http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//单点登录的管理平台报表服务器
dataType:"jsonp",//跨域采用jsonp方式
data:{"fr_username":username,"fr_password":password},//获取用户名密码
jsonp:"callback",
timeout:5000,//超时时间(单位:毫秒)
success:function(data) {
if (data.status === "success") {
window.location=data.url;//认证成功跳转页面,因为ajax不支持重定向所有需要跳转的设置
//登录成功
} else if (data.status === "fail"){
alert("用户名或密码错误");//登录失败(用户名或密码错误)
}
},
error:function(){
alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)
}
});
}
</script>
</head>
<body>
<p>请登录</p>
<form name="login" method="POST">
<p>
用户名:
<input id="username" type="text" />
</p>
<p>
密 码:
<input id="password" type="password" />
</p>
<input type="button" value="登录" onclick="doSubmit()"/>
</form>
</body>
</html></span>
呼叫登入介面
#登入系統,選擇管理系統>外觀配置,在登入頁選項中選擇設定登入網頁,並輸入自訂登入頁面的路徑:login.html,如下圖所示:
比如說若使用者有自己的系統,將FR
繼承到自己已有系統中,該系統有自己的登入介面,希望登入自己系統的同時也登入報表(即將輸入的使用者名稱密碼也傳送到報表服務進行認證),從而存取報表時不需要再次登入即單點登錄,步驟如下:
#1、找到您系統登入頁面如login.jsp;
2、在login.jsp頁面head中引入finereport.js;
3、在login.jsp頁面JavaScript中定義function如dosubmit,在dosubmit中取得到輸入的使用者名稱密碼,並透過iframe方式或ajax方式進行認證。
4、在FineReport平台系統中設定自訂登入頁面位址為您系統的登入位址。 若是OA系統或報表系統和專案系統不再同一個伺服器上,可以進行ajax跨網域非同步單一登入。
Session傳值
對java系統來說,可將使用者名稱與密碼放在session中,把報表整合在同一環境下面,報表可自動取得到使用者名稱和密碼的值進行驗證。
還原預設登入介面如果在決策系統修改了登入介面後,希望還原成系統預設登入介面,該如何實現呢?
###1)開啟###安裝###目錄%FR_HOME%\WebReport\WEB-INF\resources,找到fsconfig.###xml######### #
#2)刪除loginUrl屬性
右鍵點擊fsconfig.xml文件,選擇編輯器打開,刪除檔案中的loginUrl屬性,如下,刪除login.htm:
此時請務必關閉設計器,重新開啟,再次進入資料決策系統,即可回到預設的登入介面。
還原到預設的登入介面後,如果再需要設定登入介面,可以用管理員帳號登錄,進行設定即可。
以上是FineReport中自訂登入介面的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!