Web應用程序?qū)⑹褂肧SL調(diào)用Web服務 |
發(fā)布時間: 2012/5/23 20:13:56 |
SSL協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間,為數(shù)據(jù)通訊提供安全支持。SSL協(xié)議可分為兩層: SSL記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。 SSL握手協(xié)議(SSL Handshake Protocol):它建立在SSL記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進行身份認證、協(xié)商加密算法、交換加密密鑰等。 SSL協(xié)議提供的服務主要有: 1)認證用戶和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器; 2)加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊; 3)維護數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。 創(chuàng)建一個簡單的 Web 服務 您將在此過程中創(chuàng)建一個簡單的 Web 服務,供測試之用。 •在 Web 服務主機上創(chuàng)建一個簡單的 Web 服務 1.啟動 Visual Studio .NET,創(chuàng)建一個新的名為 SecureMath 的 Visual C# ASP.NET Web 服務應用程序。 2.將 service1.asmx 重命名為 math.asmx。 3.打開 math.asmx.cs 并將 Service1 類重命名為 math。 4.將下面的 Web 方法添加到 math 類。 [WebMethod] { return (operand1 + operand2); } 將 Web 服務虛擬目錄配置為需要 SSL 您的 Web 服務在 Internet 信息服務 (IIS) 上運行并依賴 IIS 提供 SSL 支持。 此過程假設(shè)您在 Web 服務器上安裝了有效的服務器證書。有關(guān)安裝 Web 服務器證書的詳細信息,請參見如何在 Web 服務器上設(shè)置 SSL。 •使用 IIS 配置 Web 服務的虛擬目錄以使用 SSL 1.在 Web 服務主機上,啟動 IIS。 2.導航到 SecureMath 虛擬目錄。 3.右鍵單擊 SecureMath,然后單擊“屬性”。 4.單擊“目錄安全性”選項卡。 5.單擊“安全通信”下的“編輯”。如果無法使用“編輯”,則可能沒有安裝 Web 服務器證書。 6.選擇“要求安全通道 (SSL)”復選框。 7.單擊“確定”,然后再次單擊“確定”。 8.在“繼承覆蓋”對話框中,單擊“全選”,然后單擊“確定”以關(guān)閉 SecureMath 屬性對話框。 這會將新的安全設(shè)置應用于虛擬根目錄下的所有子目錄。 使用瀏覽器測試 Web 服務 此過程確保 Web 服務器證書是有效的,而且已經(jīng)由客戶端計算機所信任的證書頒發(fā)機構(gòu) (CA)頒發(fā)。 •使用 SSL 從 Internet Explorer 調(diào)用 Web 服務 1.在客戶端計算機上啟動 Internet Explorer 并(使用 HTTPS)瀏覽到 Web 服務。例如:https://WebServer/securemath/math.asmx 瀏覽器應該顯示 Web 服務測試頁。 2.如果成功顯示了 Web 服務測試頁,就關(guān)閉 Internet Explorer 并轉(zhuǎn)到過程“開發(fā)一個 Web 應用程序以調(diào)用服務組件”。 3.如果顯示的是“安全警報”對話框(如圖 1 所示),單擊“查看證書”查看頒發(fā) Web 服務器證書的 CA 的身份。您必須在客戶端計算機上安裝該 CA 的證書。過程“在客戶端計算機上安裝證書頒發(fā)機構(gòu)的證書”對此進行了說明。 4.關(guān)閉 Internet Explorer。
此過程在客戶端計算機上安裝 CA 所頒發(fā)的證書,并將該 CA 作為受信任的根證書頒發(fā)機構(gòu)。客戶端計算機必須信任該頒發(fā)證書的 CA,以便接受服務器證書,但不顯示“安全警報”對話框。 •如果在 Windows 域中使用 Microsoft 證書服務作為 CA 1.僅在您的 Web 服務器證書是由 Microsoft 證書服務 CA 頒發(fā)的情況下,才需執(zhí)行此過程。否則,如果您有 CA 的 .cer 文件,請轉(zhuǎn)到第 8 步。 2.啟動 Internet Explorer 并瀏覽到 http://hostname/certsrv,其中 hostname 是頒發(fā)服務器證書的 Microsoft 證書服務所在計算機的名稱。 3.單擊“檢索 CA 證書或證書吊銷列表”,然后單擊“下一步”。 4.單擊“安裝此 CA 證書路徑”。 5.在“根證書存儲”對話框中,單擊“是”。 6.使用 HTTPS 瀏覽到 Web 服務。例如:https://WebServer/securemath/math.asmx 瀏覽器中現(xiàn)在應該正確顯示 Web 服務測試頁,而不顯示“安全警報”對話框,F(xiàn)在您已經(jīng)在個人受信任根證書存儲中安裝了 CA 的證書。您必須將 CA 的證書添加到計算機的受信任根存儲中,然后才能夠從 ASP.NET 頁成功調(diào)用 Web 服務。 7.重復第 1 步和第 2 步,單擊“下載 CA 證書”,然后將其保存到本地計算機上的某個文件中。 8.現(xiàn)在執(zhí)行其余步驟。如果有 CA 的 .cer 證書文件 9.在任務欄上,單擊“開始”,然后單擊“運行”。 10.鍵入“mmc”,然后單擊“確定”。 11.在“控制臺”菜單上,單擊“添加/刪除管理單元”。
13.選擇“證書”,然后單擊“添加”。 14.選擇“計算機帳戶”,然后單擊“下一步”。 15.選擇“本地計算機 (運行這個控制臺的計算機):”,然后單擊“完成”。 16.單擊“關(guān)閉”,然后單擊“確定”。 17.在 MMC 管理單元的左窗格中展開“證書 (本地計算機)”。 18.展開“受信任的根證書頒發(fā)機構(gòu)”。 19.右鍵單擊“證書”,指向“所有任務”,然后單擊“導入”。 20.單擊“下一步”跳過“證書導入向?qū)?rdquo;的“歡迎”對話框。 21.輸入 CA 的 .cer 文件的路徑和文件名。 22.單擊“下一步”。 23.選擇“將所有的證書放入下列存儲區(qū)”,然后單擊“瀏覽”。 24.選擇“顯示物理存儲區(qū)”。 25.在列表中展開“受信任的根證書頒發(fā)機構(gòu)”,然后選擇“本地計算機”。 26.依次單擊“確定”、“下一步”以及“完成”。 27.單擊“確定”關(guān)閉確認消息框。 28.在 MMC 管理單元中刷新“證書”文件夾的視圖,確認該 CA 的證書已列出。 29.關(guān)閉 MMC 管理單元。 開發(fā)一個 Web 應用程序以調(diào)用 Web 服務 本過程創(chuàng)建一個簡單的 ASP.NET Web 應用程序。您將使用此 ASP.NET Web 應用程序作為客戶端應用程序來調(diào)用 Web 服務。 •創(chuàng)建一個簡單的 ASP.NET Web 應用程序 1.在 Web 服務客戶端計算機上,創(chuàng)建一個新的名為 SecureMathClient 的 C# ASP.NET Web 應用程序。
1.右鍵單擊解決方案資源管理器中的“引用”節(jié)點,然后單擊“添加 Web 引用”。 2.在“添加 Web 引用”對話框中,輸入 Web 服務的 URL。確保使用 HTTPS URL。 注意:如果您已經(jīng)設(shè)置了對 Web 服務的 Web 引用但沒有使用 HTTPS,您可以手動編輯生成的代理類文件并更改代碼行,將 Url 屬性的設(shè)置從 HTTP URL 更改為 HTTPS URL。 3.單擊“添加引用”。 3.打開 WebForm1.aspx.cs 并在現(xiàn)有 using 語句之下添加下面的 using 語句。 using SecureMathClient.WebReference1; 4.在“設(shè)計器”模式下查看 WebForm1.aspx,并使用以下 ID 創(chuàng)建一個與圖 2 類似的窗體: •operand1 •operand2 •result •add WebForm1.aspx 窗體 5.雙擊“Add”按鈕,創(chuàng)建一個按鈕單擊事件處理程序。 6.將下面的代碼添加到該事件處理程序中。 private void add_Click(object sender, System.EventArgs e) math mathService = new math(); int addResult = (int) mathService.Add( Int32.Parse(operand1.Text), Int32.Parse(operand2.Text)); result.Text = addResult.ToString(); } 8.運行該應用程序。輸入要相加的兩個數(shù),然后單擊“Add”按鈕。該 Web 應用程序?qū)⑹褂?SSL 調(diào)用 Web 服務。 億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888 本文出自:億恩科技【1tcdy.com】 |