NET系統集成有自己獨立的登錄驗證方式。比如,跟報表集成時,不需要再使用報表內置的登錄界面,只需要將報表默認的參數用戶名fr_username和密碼fr_password發送給報表系統,觸發一下報表驗證方式就可以實現單點登錄了,以下用FineReport的.NET跨域單點登錄案例簡單介紹一下。
系統本身有獨立的登錄驗證方式如下圖:
1.觸發報表驗證方法
報表集成時不需要再一次進行登錄驗證,只需在項目里面的登錄驗證頁面內觸發一下報表方法,如下js方法:
注:此處的單點登錄是登錄報表管理平臺,而不是FineReport的數據決策系統,如果需要與數據決策系統做單點登錄,需將
點擊項目里面的登錄按鈕,跳到后臺進行項目里面的驗證,此報表的驗證方式需要在頁面前臺內調用javascript的方式觸發,這邊類似定義了兩個onclick事件,而.net不能同時觸發兩個onclick事件,所以先要觸發完一個onclick事件后再觸發另一個,考慮報表沒有驗證完.net項目就跳轉的話,導致報表沒有驗證成功,所以點擊登錄按鈕首先觸發報表驗證方法,其次再到.net后臺進行驗證。
3. 觸發.net前臺
觸發前臺報表驗證方法,新建一個登錄按鈕,設置按鈕OnClientClick屬性為:OnClientClick="doSubmit();return false;",即觸發前臺doSubmit()方法,doSubmit()方法,首先把獲取的用戶名和密碼的值,發送到報表系統,報表服務將帶著這兩個參數訪問認證地址進行認證。而項目本身有個登錄按鈕是觸發的項目后臺的方法,我們這邊首先觸發報表前臺再通過js的方式觸發后臺的那個登錄按鈕,所以這邊需要把之前的登錄按鈕設置隱藏,屬性為Style="display: none;"。
4. 觸發.net后臺
報表驗證完再觸發.net項目后臺登錄驗證的方法,通過登錄按鈕ID為Button1,使用document.getElementById("Button1").click();觸發登錄按鈕,但是每個瀏覽器執行的方式不同,所以這邊需要判斷一下,代碼如下:
下面以簡單的登錄驗證頁面login.aspx為例head中調用javascript
示例
1、登錄前臺頁面
以簡單的登錄驗證頁面login.aspx為例,head中調用javascript觸發報表方法:
前臺和后臺驗證成功之后,單點登錄頁面就設計完成了。
報表工具是通過url傳用戶名和密碼進行驗證,傳到報表服務器是以session的方式保存,防止被人中途攔截會導致系統泄密,可以對登錄進來的密碼進行加密,或者使用https證書,讓請求在傳輸過程中加密,配置方法也很簡單。這種方式還存在一個證書合法性問題,用自己生成的證書,客戶端在訪問報表中瀏覽器會顯示證書非法警告,所以需要去購買合法證書。目前國內最便宜的證書一年是一千多元。
2、平臺設置
一般情況下報表集成到.net系統,首先登錄訪問.net的項目,所以自定義登錄頁面訪問地址可以不需要設置,如果沒有登錄到.ne項目,先訪問我們的報表了,而這時訪問報表的登錄頁面是報表內置的登錄界面,需使用自動登錄頁面地址為您系統的登錄地址,操作如下:
打開http://localhost/WebReport/ReportServer?op=fr_platform,FR管理平臺,選擇權限配置>登錄設置,自定義登錄頁面訪問地址上,輸入自己的登錄頁面路徑http://localhost/FRtest/login.aspx,如下圖所示:
posted on 2016-07-27 10:27 喝水居然長肉 閱讀(98) 評論(0) 編輯 收藏
Powered by: BlogJava Copyright © 喝水居然長肉