系統(tǒng)集成方案(一).NET集成方案

NET系統(tǒng)集成有自己獨立的登錄驗證方式。比如,跟報表集成時,不需要再使用報表內(nèi)置的登錄界面,只需要將報表默認的參數(shù)用戶名fr_username和密碼fr_password發(fā)送給報表系統(tǒng),觸發(fā)一下報表驗證方式就可以實現(xiàn)單點登錄了,以下用FineReport的.NET跨域單點登錄案例簡單介紹一下。

公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出松江免費做網(wǎng)站回饋大家。

系統(tǒng)本身有獨立的登錄驗證方式如下圖:

系統(tǒng)集成方案(一).NET集成方案 

1.觸發(fā)報表驗證方法

報表集成時不需要再一次進行登錄驗證,只需在項目里面的登錄驗證頁面內(nèi)觸發(fā)一下報表方法,如下js方法:

function doSubmit() {    
         varusername =document.getElementById("username").value;  //此處是用來提取用戶名和密碼
         varpassword =document.getElementById("userPwd").value;
        varscr = document.createElement("iframe");      //創(chuàng)建iframe  
         vardt=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標(biāo)簽嵌入到head中  
    }

注:此處的單點登錄是登錄報表管理平臺,而不是FineReport的數(shù)據(jù)決策系統(tǒng),如果需要與數(shù)據(jù)決策系統(tǒng)做單點登錄,需將

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;

點擊項目里面的登錄按鈕,跳到后臺進行項目里面的驗證,此報表的驗證方式需要在頁面前臺內(nèi)調(diào)用javascript的方式觸發(fā),這邊類似定義了兩個onclick事件,而.net不能同時觸發(fā)兩個onclick事件,所以先要觸發(fā)完一個onclick事件后再觸發(fā)另一個,考慮報表沒有驗證完.net項目就跳轉(zhuǎn)的話,導(dǎo)致報表沒有驗證成功,所以點擊登錄按鈕首先觸發(fā)報表驗證方法,其次再到.net后臺進行驗證。

3. 觸發(fā).net前臺

觸發(fā)前臺報表驗證方法,新建一個登錄按鈕,設(shè)置按鈕OnClientClick屬性為:OnClientClick="doSubmit();return false;",即觸發(fā)前臺doSubmit()方法,doSubmit()方法,首先把獲取的用戶名和密碼的值,發(fā)送到報表系統(tǒng),報表服務(wù)將帶著這兩個參數(shù)訪問認證地址進行認證。而項目本身有個登錄按鈕是觸發(fā)的項目后臺的方法,我們這邊首先觸發(fā)報表前臺再通過js的方式觸發(fā)后臺的那個登錄按鈕,所以這邊需要把之前的登錄按鈕設(shè)置隱藏,屬性為Style="display: none;"。

4. 觸發(fā).net后臺

報表驗證完再觸發(fā).net項目后臺登錄驗證的方法,通過登錄按鈕ID為Button1,使用document.getElementById("Button1").click();觸發(fā)登錄按鈕,但是每個瀏覽器執(zhí)行的方式不同,所以這邊需要判斷一下,代碼如下:

  if(scr.attachEvent){       //判斷是否為ie瀏覽器  
              scr.attachEvent("onload", function(){                    //如果為ie瀏覽器則頁面加載完成后立即執(zhí)行  
                  var f = document.getElementById("Button1");  
                  f.click();  
              });  
           } else {  
              scr.onload = function(){             //其他瀏覽器則重新加載onload事件  
                   var f = document.getElementById("Button1");  
                   f.click();  
              };  
         }

下面以簡單的登錄驗證頁面login.aspx為例head中調(diào)用javascript

示例

1、登錄前臺頁面

以簡單的登錄驗證頁面login.aspx為例,head中調(diào)用javascript觸發(fā)報表方法:

<%@ Page Language="C#"AutoEventWireup="true" CodeFile="login.aspx.cs"Inherits="login" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<htmlxmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
   <title>無標(biāo)題頁</title>
  <scripttype="text/javascript" language="javascript">  
      function doSubmit() {    
         varusername =document.getElementById("username").value;  //此處是用來提取用戶名和密碼
         varpassword =document.getElementById("userPwd").value;
        varscr = document.createElement("iframe");      //創(chuàng)建iframe  
         vardt=new Date();
        scr.src= "/WebReport/ReportServer?op=fs_load&cmd=sso&username=" +username + "&password=" +password+"&time="+dt.toString();  //將報表驗證用戶名密碼的地址指向此iframe  
        if(scr.attachEvent){       //判斷是否為ie瀏覽器  
              scr.attachEvent("onload", function(){                    //如果為ie瀏覽器則頁面加載完成后立即執(zhí)行  
                  var f = document.getElementById("Button1");  
                  f.click();  
              });  
           } else {  
              scr.onload = function(){             //其他瀏覽器則重新加載onload事件  
                   var f = document.getElementById("Button1");  
                   f.click();  
              };  
        }  
       document.getElementsByTagName("head")[0].appendChild(scr);   //將iframe標(biāo)簽嵌入到head中  
    } 
 </script>
</head>
<body>
    <formid="form1" runat="server">
   <div>
       <asp:TextBox ID="username" runat="server"Style="z-index: 100; left: 156px; position: absolute;
           top: 42px"></asp:TextBox>
       <asp:TextBox ID="userPwd" runat="server"Style="z-index: 101; left: 157px; position: absolute;
           top: 91px"></asp:TextBox>
       <asp:Label ID="Label1" runat="server"Height="22px" Style="z-index: 102; left: 76px;
           position: absolute; top: 46px" Text="用戶名:" Width="77px"></asp:Label>
       <asp:Label ID="Label2" runat="server"Style="z-index: 103; left: 80px; position: absolute;
           top: 88px" Text="密碼:"Width="64px"></asp:Label>
       <asp:Button ID="Button1" runat="server"  Style="z-index: 104; display:none;
           left: 84px; position: absolute; top: 132px" Text="登錄" Width="66px" />
       <asp:Button ID="Button2" runat="server"OnClientClick="doSubmit();return false;"
           Style="z-index: 106; left: 178px; position: absolute; top:133px" Text="登錄" Width="100px" />
    
   </div>
   </form>
</body>
</html>

前臺和后臺驗證成功之后,單點登錄頁面就設(shè)計完成了。

報表工具是通過url傳用戶名和密碼進行驗證,傳到報表服務(wù)器是以session的方式保存,防止被人中途攔截會導(dǎo)致系統(tǒng)泄密,可以對登錄進來的密碼進行加密,或者使用https證書,讓請求在傳輸過程中加密,配置方法也很簡單。這種方式還存在一個證書合法性問題,用自己生成的證書,客戶端在訪問報表中瀏覽器會顯示證書非法警告,所以需要去購買合法證書。目前國內(nèi)最便宜的證書一年是一千多元。

2、平臺設(shè)置

一般情況下報表集成到.net系統(tǒng),首先登錄訪問.net的項目,所以自定義登錄頁面訪問地址可以不需要設(shè)置,如果沒有登錄到.ne項目,先訪問我們的報表了,而這時訪問報表的登錄頁面是報表內(nèi)置的登錄界面,需使用自動登錄頁面地址為您系統(tǒng)的登錄地址,操作如下:

打開http://localhost/WebReport/ReportServer?op=fr_platform,F(xiàn)R管理平臺,選擇權(quán)限配置>登錄設(shè)置,自定義登錄頁面訪問地址上,輸入自己的登錄頁面路徑http://localhost/FRtest/login.aspx,如下圖所示:

系統(tǒng)集成方案(一).NET集成方案


當(dāng)前名稱:系統(tǒng)集成方案(一).NET集成方案
標(biāo)題網(wǎng)址:http://bm7419.com/article36/gihgsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、用戶體驗、網(wǎng)站策劃、微信公眾號服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)