亚洲免费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.

        天天躁日日躁aaaaxxxx| 精品国产亚洲av成人一区| 白色白色视频在线观看| 伊人中文字幕亚洲精品乱码 | 国产ww久久久久久久久久| 激情97综合亚洲色婷婷五| 成年女人片免费视频播放A | 国产自拍成人免费视频| 亚洲国产天堂久久综合| 热99re久久精品这里都是免费| 日本女优一区二区在线免费观看| 亚洲黄色一级在线观看| 中文字幕av一区二区三区人妻少妇| 国产不卡一区二区三区免费视| 水蜜桃视频在线观看免费18| 女同同志熟女人妻二区| 日韩成人无码| 亚洲中文字幕在线一区二区三区 | 少妇高潮流白浆在线观看| 特级黄色毛片视频| 免费看男女啪啪的视频网站| 国产福利一区二区三区在线视频| 俄罗斯老熟妇色xxxx| 国产资源在线视频| 中文字幕人妻互换激情| 2019最新中文字幕在线观看| 少妇极品熟妇人妻无码| 国产精品三级av一区二区| 淫片一区二区三区av| 成人综合婷婷国产精品久久蜜臀| 日韩精品国产自在欧美| 九一精品少妇一区二区三区| 国产精品无码久久综合网| 日韩欧美亚洲综合久久影院d3| 日韩高清av一区二区| 在线观看午夜视频一区二区| 午夜不卡av免费| h动漫尤物视频| 一区二区三区激情免费视频| 久久国产劲暴∨内射| 久草热这里只有精品在线|