欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
iframe跨域單點(diǎn)登陸

1. 問(wèn)題描述
對于OA系統中想實(shí)現對FineReport的單點(diǎn)登錄,用戶(hù)需要在OA的登錄界面中將用戶(hù)名和密碼傳入到報表的認證地址進(jìn)行認證,若OA系統和報表系統不是部署在同一臺服務(wù)器上,在進(jìn)行登錄時(shí)進(jìn)行跨域,在上一節介紹了ajax跨域異步單點(diǎn)登陸,那么要如何通過(guò)iframe方式實(shí)現OA系統和報表系統的跨域登錄呢?
2. 實(shí)現思路
在OA系統的登錄界面的js中將報表先把權限驗證地址以iframe的方式嵌入,解決js跨域問(wèn)題,然后再在iframe里面觸發(fā)表單登錄事件,實(shí)現登錄頁(yè)面的跳轉。
3. 示例(數據決策系統op=fs)
以登陸數據決策系統(op=fs)為例,通過(guò)簡(jiǎn)化的OA登錄頁(yè)面說(shuō)明iframe跨域單點(diǎn)登錄的實(shí)現步驟:
數據決策系統(op=fs)身份驗證地址為:
  1. scr.src = " http://localhost:8075/WebReport/ReportServer?op=touchfs&__redirect__=false&username=" + username + "&password=" + password;  
  • 原來(lái)的登錄界面代碼如下:
  1. <html>    
  2.   <head>    
  3.   </head>    
  4.   <body>    
  5.    <p>請登錄</p>    
  6.    <form id="login" name="login" method="POST"  action="">    
  7.      <p>用戶(hù)名:<input id="username" type="text" /></p>    
  8.      <p>密 碼:<input id="password" type="password" /></p>      
  9.      <input type="submit" value="登錄"/>    
  10.    </form>    
  11.   </body>    
  12. </html>   
3.1 iframe實(shí)現步驟
  • 登陸按鈕事件設置
用戶(hù)輸入用戶(hù)名密碼后點(diǎn)擊提交或登錄按鈕時(shí),觸發(fā)doSubmit()方法,該方法中先創(chuàng )建一個(gè)iframe,然后將報表驗證用戶(hù)名密碼的認證地址指向此iframe的src,并對使用的瀏覽器進(jìn)行判斷因為每個(gè)瀏覽器注冊寫(xiě)法不太一樣,然后將此iframe標簽加入到head標簽中,實(shí)現報表認證代碼如下:
  1. function doSubmit() {        
  2.       var username =document.getElementById("username").value;      
  3.       var password =document.getElementById("password").value;        
  4.       var scr = document.createElement("iframe");      //創(chuàng )建iframe      
  5.       scr.src = " http://localhost:8075/WebReport/ReportServer?op=touchfs&__redirect__=false&username=" + username + "&password=" + password;   //將報表驗證用戶(hù)名密碼的地址指向此iframe        
  6.  if (scr.attachEvent){       //判斷是否為ie瀏覽器    
  7.        scr.attachEvent("onload", function(){                    //如果為ie瀏覽器則頁(yè)面加載完成后立即執行    
  8.            /*跳轉到指定登錄成功頁(yè)面,index.jsp   
  9.            var f = document.getElementById("login");   
  10.                f.submit();  */  
  11.             window.location=" http://localhost:8075/WebReport/ReportServer?op=fs"; //直接跳轉到數據決策系統    
  12.        });    
  13.     } else {    
  14.        scr.onload = function(){              //其他瀏覽器則重新加載onload事件    
  15.            /*跳轉到指定登錄成功頁(yè)面,index.jsp   
  16.             var f = document.getElementById("login");   
  17.                 f.submit(); */   
  18.         window.location=" http://localhost:8075/WebReport/ReportServer?op=fs"; //直接跳轉到數據決策系統    
  19.        };    
  20.  }    
  21.        
  22.    document.getElementsByTagName("head")[0].appendChild(scr);   //將iframe標簽嵌入到head中      
  23.  }  
注:由于編碼的問(wèn)題,要對輸入的用戶(hù)名和密碼進(jìn)行cjkEncode編碼,需要引入finereport.js,在head標簽中引入finereport.js,如下:
  1. <script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script>  
  1. FR.cjkEncode(document.getElementById("username").value);    //使用FR的內置編碼函數進(jìn)行編碼轉化  
也可以自己寫(xiě)cjkEncode函數,實(shí)現方法見(jiàn)編碼轉換文檔。
另:如果登錄頁(yè)面所在工程不是FineReport的工程,則無(wú)法引入finereport.js,自定義cjkEncode函數,示例中沒(méi)有進(jìn)行編碼轉換。
  • 完整代碼
修改后即可以實(shí)現跨域單點(diǎn)登錄的代碼如下:
  1. <html>        
  2.   <head>        
  3.   <script type="text/javascript">        
  4.     function doSubmit() {        
  5.         var username =document.getElementById("username").value;      
  6.         var password =document.getElementById("password").value;        
  7.         var scr = document.createElement("iframe");      //創(chuàng )建iframe      
  8.         scr.src = " http://localhost:8075/WebReport/ReportServer?op=touchfs&__redirect__=false&username=" + username + "&password=" + password;   //將報表驗證用戶(hù)名密碼的地址指向此iframe        
  9.    if (scr.attachEvent){       //判斷是否為ie瀏覽器    
  10.                scr.attachEvent("onload", function(){                    //如果為ie瀏覽器則頁(yè)面加載完成后立即執行    
  11.                    /*跳轉到指定登錄成功頁(yè)面,index.jsp   
  12.                    var f = document.getElementById("login");   
  13.                    f.submit(); */   
  14.                     window.location=" http://localhost:8075/WebReport/ReportServer?op=fs"; //直接跳轉到數據決策系統  
  15.                });    
  16.             } else {    
  17.                scr.onload = function(){              //其他瀏覽器則重新加載onload事件    
  18.                    /*跳轉到指定登錄成功頁(yè)面,index.jsp   
  19.                     var f = document.getElementById("login");   
  20.                     f.submit();  */  
  21.                 window.location=" http://localhost:8075/WebReport/ReportServer?op=fs"; //直接跳轉到數據決策系統    
  22.                };    
  23.          }    
  24.          
  25.      document.getElementsByTagName("head")[0].appendChild(scr);   //將iframe標簽嵌入到head中      
  26.    }     
  27.  </script>        
  28. </head>        
  29. <body>        
  30.   <p>請登錄</p>        
  31.   <form id="login" name="login" method="GET"  action="" >        
  32.     <p>用戶(hù)名:<input id="username" type="text" name="username" /></p>        
  33.     <p>密 碼:<input id="password" type="password" name="password"/></p>          
  34.     <input type="button" value="登錄" onClick="doSubmit()" />        
  35.   </form>        
  36.  </body>        
  37. </html>   
說(shuō)明:用戶(hù)名密碼表單中使用button來(lái)觸發(fā)doSubmit(),您只要將doSubmit()方法加入到您的OA的登錄頁(yè)面中即可,為了簡(jiǎn)化操作,完整代碼中沒(méi)有跳轉到指定頁(yè)面,直接跳轉到op=fs壓面。
4. 示例(平臺管理op=fr_platform登錄)
將上面的scr.src地址換成平臺管理的報表身份驗證地址即可:
  1. scr.src = " http://localhost:8075/WebReport/ReportServer?op=touchpf&__redirect__=false&username=" + username + "&password=" + password;  
5. 注銷(xiāo)用戶(hù)
5.1 管理平臺的登出
當注銷(xiāo)項目用戶(hù)時(shí),同時(shí)也希望注銷(xiāo)報表用戶(hù)名的session,即退出管理平臺,這時(shí)可在點(diǎn)擊退出按鈕時(shí)調用一下報表登出驗證方法:/WebReport/ReportServer?op=auth_logout就可以實(shí)現FR管理平臺的退出登錄。
5.2 數據決策系統(op=fs)的登出
當將FineReport的決策系統集成到項目中時(shí),注銷(xiāo)項目用戶(hù),同時(shí)也希望注銷(xiāo)決策系統的用戶(hù)名session,即退出決策系統,其登出方法為:/WebReport/ReportServer?op=fs_load&cmd=logout就可以實(shí)現FR決策系統的登出。
        



本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
帆軟報表試用評測報告
artDialog-iframe Tools
關(guān)于contentWindow和contentDocument
Web報表工具FineReport自定義打印方法匯總
如何通過(guò) OIDC 協(xié)議實(shí)現單點(diǎn)登錄?
Webbrowser 動(dòng)態(tài)操作select元素值
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久