亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SOAP頭的Web服務身份驗證技術

        2009-04-29 00:00:00盧守東
        電腦知識與技術 2009年4期

        摘要:介紹基于SOAP頭的Web服務身份驗證技術,并通過具體示例說明在.NET平臺下的編程模式。

        關鍵詞:Web服務;SOAP頭;身份驗證;ASP.NE;C#

        中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)04-0849-02

        Authentication Technology of Web Services Based on SOAP Header

        LU Shou-dong

        (Department of Computer And Information Management, Guangxi University of Finance and Economics, Nanning 530003, China)

        Abstract: This paper introduces the authentication technology of Web Services based on SOAP header, and explains its programming pattern under .NET plat through the concrete example.

        Key words:Web Services; SOAP Header; Authentication; ASP.NET; C#

        Web服務(Web Services)是目前最為流行的應用于異構環(huán)境的分布式組件開發(fā)技術。作為一種部署在Web上的可編程訪問的對象,如何確保其安全性是在具體應用中必須考慮的一個重要問題。為控制對Web服務的合法訪問,對服務使用者的身份進行驗證是很有必要的。本文主要介紹一種基于SOAP頭的Web服務身份驗證技術,并通過具體示例說明其編程模式。

        1 Web服務簡介

        Web服務是一種通過網絡進行發(fā)布、發(fā)現、調用的自描述的服務器端軟件組件,其實現依賴于一系列的標準協(xié)議或規(guī)范(如圖1所示),包括HTTP、XML、SOAP、WSDL、UDDI等。簡言之,Web服務以XML與XML Schema為數據編碼格式與數據類型標準,使用WSDL進行描述,使用UDDI進行發(fā)布與發(fā)現,使用SOAP進行訪問,并通過HTTP等進行傳輸。Web服務的上層核心標準都是基于XML的,具有優(yōu)異的跨平臺特性,這為Web服務在異構平臺上進行系統(tǒng)的集成與交互提供了充分的保證。

        2 SOAP協(xié)議概況

        SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),是一種基于XML的、簡單的、輕量級的通信協(xié)議,用于在客戶端與Web服務之間傳遞消息(包括請求消息與響應消息)。

        SOAP協(xié)議使用XML描述消息。一個SOAP消息其實是一個XML文檔,包括Envelope(SOAP信封)、Header(SOAP頭)、Body(SOAP體)3個元素。其中,Envelope是整個SOAP消息的根元素,是必須的;Header是SOAP消息是可選元素,若存在,則必須是Envelope的第一個直接子元素;Body是SOAP消息必須有的元素,而且是Envelope的直接子元素,用于包含Web服務的調用信息(如所調用方法的名稱及有關參數等)或響應信息以及相關的錯誤信息。SOAP消息的結構如圖2所示。

        在SOAP消息中,SOAP體的使用是由SOAP協(xié)議規(guī)定,而SOAP頭的使用則較為靈活,可由用戶根據需要進行定制。通常,可在SOAP頭中添加一些條目,以包含具體應用所必須的重要信息(如賬戶信息、事務標識等),并據此實現相應的功能。

        3 基于SOAP頭的身份驗證

        通過在SOAP頭中添加適當的驗證信息,并由Web服務的進行讀取與處理,即可實現對服務使用者的身份驗證。在此,以ASP.NET Web服務為例,說明基于SOAP頭的Web服務身份驗證技術。

        3.1 基本步驟

        ASP.NET Web服務允許定義并處理SOAP頭條目,其基本步驟為:

        1) 創(chuàng)建一個繼承自SoapHeader的類AuthSoapHeader,該類的名稱與公共成員變量即為SOAP頭條目元素的名稱與內容子元素。

        2) 在Web服務類中聲明一個AuthSoapHeader類的公共變量MyASH。

        3) 為Web服務的有關方法應用SoapHeader屬性,并將其MemberName屬性設置為MyASH。

        4) 在應用了SoapHeader屬性的Web服務方法中訪問MyASH的成員變量,并完成相應的處理過程。

        相應地,在調用Web服務的客戶端,可通過以下基本步驟設置SOAP頭條目:

        1) 創(chuàng)建一個Web服務的實例變量MyAService。

        2) 創(chuàng)建一個AuthSoapHeader類的實例變量MyASHeader,并為其成員變量賦值。

        3) 將MyASHeader賦給MyAService.AuthSoapHeaderValue(即設置SOAP頭條目),并調用Web服務的有關方法以完成相應的功能。

        3.2 應用示例

        如圖3所示,為一系統(tǒng)登錄表單,用于對系統(tǒng)用戶進行身份驗證,其驗證過程是通過調用Web服務完成的,而用戶名與密碼則通過SOAP 頭進行傳送。為簡單起見,該示例假定用戶名與密碼均非空串時即為合法。單擊“確定”按鈕后,若為合法用戶,則提示信息顯示為“Success”,否則為“Failure”。下面,簡述該示例的設計要點。

        1) Web服務AuthService的設計

        在Visual Studio .NET中使用ASP.NET Web服務模板新建一個Visual C#項目AuthService,并將Service1.asmx重命名為Authentication.asmx,然后在Authentication.asmx.cs中編寫相應的代碼。關鍵代碼如下:

        ……

        using System.Web.Services.Protocols;

        namespace AuthService {

        public class AuthSoapHeader : SoapHeader {

        public string Username;

        public string Password; }

        [WebService(Namespace=\"http://abc.com/webservices\")]

        public class AuthService : System.Web.Services.WebService {

        ……

        public AuthSoapHeader MyASH;

        [WebMethod]

        [SoapHeader(\"MyASH\")]

        public string AuthenticateUser() {

        if (MyASH==1)

        return \"Failure!\";

        if (VerifyUser(MyASH.Username,MyASH.Password))

        return \"Success\";

        return \"Failure\"; }

        private bool VerifyUser(string Username,string Password) {

        if ((Username!=\"\")(Password!=\"\"))

        return true;

        return 1;

        } } }

        2) 客戶端Login.aspx的設計

        ① 在Visual Studio .NET中使用ASP.NET Web應用程序模板新建一個Visual C#項目AuthClient。

        ② 添加對Web服務AuthService的Web引用,并命名為Authentication。

        ③ 將WebForm1.aspx重命名為Login.aspx,同時設計好其界面(如圖3所示),主要包括用戶名文本框TB_Username、密碼文本框TB_Password、提示信息標簽L_Message與“確定”按鈕。

        ④ 為Login.aspx.cs添加功能代碼。

        首先,引用命名空間AuthClient.Authentication:

        using AuthClient.Authentication;

        然后,編寫“確定”按鈕的單擊事件代碼:

        AuthService MyAService=new AuthService();

        AuthSoapHeader MyASHeader=new AuthSoapHeader();

        MyASHeader.Username=TB_Username.Text;

        MyASHeader.Password=TB_Password.Text;

        MyAService.AuthSoapHeaderValue=MyASHeader;

        L_Message.Text=\"提示信息:\"+MyAService.AuthenticateUser()+\".\";

        4 結束語

        SOAP頭為Web服務及其客戶端之間關鍵數據的傳遞提供了一種靈活且有效的途徑,有利于實現身份驗證、事務處理等特殊功能。文中所述,即為利用SOAP頭對Web服務使用者進行身份驗證的關鍵技術與與典型模式。

        參考文獻:

        [1] 石國志..NET Web服務實用案例教程[M].北京:清華大學出版社,2004.

        [2] 佛里曼,瓊斯.Microsoft .NET XML Web服務程序設計[M].向璐,向祚鐵,譯.北京:清華大學出版社,2003.

        中国a级毛片免费观看| 亚洲国产高清美女在线观看| 亚洲AV乱码毛片在线播放| 蜜臀精品一区二区三区| 国产三级精品和三级男人| 国产精品成人亚洲一区| 亚洲精品~无码抽插| 国产成人无码免费网站| 国产精品嫩草影院午夜| 中文字幕大乳少妇| 亚洲国产成人精品一区刚刚| 亚洲人成精品久久熟女| 51国产偷自视频区视频| 东京道一本热中文字幕| 海角国精产品一区一区三区糖心| 亚洲制服无码一区二区三区 | 风韵人妻丰满熟妇老熟女视频| 玩弄少妇人妻中文字幕| 护士人妻hd中文字幕| 国产精品一区二区 尿失禁 | 国产精品无码制服丝袜| 久热re这里精品视频在线6| 久久久久久久岛国免费观看| 奇米狠狠色| 日日噜噜夜夜狠狠2021| 丝袜美腿精品福利在线视频| 日韩日韩日韩日韩日韩日韩| 激情亚洲一区国产精品| 亚洲一区二区三区精品网| 少妇隔壁人妻中文字幕| 人妖一区二区三区在线| 日本一道综合久久aⅴ免费 | 亚洲欧洲日产国产AV无码| 亚洲一区视频中文字幕| 色欲色香天天天综合vvv| 中文字幕av免费专区| 18禁男女爽爽爽午夜网站免费| 水蜜桃视频在线观看免费18| 日本女优在线一区二区三区 | 青青草视频在线观看网| 欧美大成色www永久网站婷|