wuxiren123

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          FineReport中如何自定義登錄界面

          在登錄平臺時,不希望使用FR默認(rèn)的內(nèi)置登錄界面,想通過自定義登錄界面實現(xiàn)登錄操作,內(nèi)置登錄界面如下圖:



           

          登錄界面,獲取到用戶名和密碼的值,發(fā)送到報表系統(tǒng),報表服務(wù)帶著這兩個參數(shù)訪問認(rèn)證地址進(jìn)行認(rèn)證。

          自定義登錄界面

          登錄界面設(shè)置

          自定義html登錄頁面:命名為login.html,并保存在%FR_HOME%\WebReport下,代碼如下:

          <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);  //獲取輸入的參數(shù)  
              jQuery.ajax({  
               url:
          "http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//單點登錄的管理平臺報表服務(wù)器  
               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;//認(rèn)證成功跳轉(zhuǎn)頁面,因為ajax不支持重定向所有需要跳轉(zhuǎn)的設(shè)置 
                            //登錄成功     
                      }
           else if (data.status === "fail"){  
                           alert(
          "用戶名或密碼錯誤");//登錄失敗(用戶名或密碼錯誤)  
                      }
            
               }
          ,  
               error:
          function(){  
                     alert(
          "超時或服務(wù)器其他錯誤");// 登錄失敗(超時或服務(wù)器其他錯誤)  
               }
            
          }
          ); 
          }
            
          </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>

           Dosubmit()是主要的邏輯判斷,實現(xiàn)的是將對應(yīng)的值傳給報表服務(wù)的邏輯實現(xiàn)過程。

          調(diào)用登錄界面

          登錄系統(tǒng),選擇管理系統(tǒng)>外觀配置,在登錄頁選項中選擇設(shè)置登錄網(wǎng)頁,并輸入自定義登錄頁面的路徑:login.html,如下圖所示:



           

          總結(jié)

          比如說若用戶有自己的系統(tǒng),將FR繼承到自己已有系統(tǒng)中,該系統(tǒng)有自己的登錄界面,希望登錄自己系統(tǒng)的同時也登錄報表(即將輸入的用戶名密碼也發(fā)送到報表服務(wù)進(jìn)行認(rèn)證),從而訪問報表時不需要再次登錄即單點登錄,步驟如下:

          1、找到您系統(tǒng)登錄頁面如login.jsp;

          2、在login.jsp頁面head中引入finereport.js;

          3、在login.jsp頁面JavaScript中定義function如dosubmit,在dosubmit中獲取到輸入的用戶名密碼,并通過iframe方式或者ajax方式進(jìn)行認(rèn)證。

          4、在FineReport平臺系統(tǒng)中設(shè)置自定義登錄頁面地址為您系統(tǒng)的登錄地址。

          若是OA系統(tǒng)或者報表系統(tǒng)和項目系統(tǒng)不再同一個服務(wù)器上,可以進(jìn)行ajax跨域異步單點登錄。

          Session傳值

          對于java系統(tǒng)來說,可將用戶名與密碼放在session中,把報表集成在同一環(huán)境下面,報表可自動獲取到用戶名和密碼的值進(jìn)行驗證。

          還原默認(rèn)登錄界面

          如果在決策系統(tǒng)修改了登錄界面后,希望還原成系統(tǒng)默認(rèn)登錄界面,應(yīng)該如何實現(xiàn)呢?

          1)打開安裝目錄%FR_HOME%\WebReport\WEB-INF\resources,找到fsconfig.xml



           

          2)刪除loginUrl屬性

          右擊fsconfig.xml文件,選擇編輯器打開,刪除文件中的loginUrl屬性,如下,刪除login.htm:



           

          此時請務(wù)必關(guān)閉設(shè)計器,重新開啟,再次進(jìn)入數(shù)據(jù)決策系統(tǒng),即可回到默認(rèn)的登錄界面。

          還原到默認(rèn)的登錄界面后,如果再需要設(shè)置登錄界面,可以用管理員賬戶登錄,進(jìn)行設(shè)置即可。

          posted on 2017-03-21 16:58 喝水居然長肉 閱讀(118) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 黄浦区| 嘉善县| 崇左市| 宁远县| 虞城县| 宝应县| 岑溪市| 青河县| 尚志市| 醴陵市| 阿勒泰市| 闽清县| 泰来县| 盖州市| 佛学| 开远市| 大丰市| 堆龙德庆县| 寿宁县| 深泽县| 德昌县| 喀喇沁旗| 措勤县| 东明县| 黔东| 吴川市| 囊谦县| 唐河县| 建湖县| 台山市| 炉霍县| 新营市| 汨罗市| 申扎县| 金塔县| 上高县| 北流市| 宁津县| 阳谷县| 松原市| 大洼县|