999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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)是目前最為流行的應用于異構環境的分布式組件開發技術。作為一種部署在Web上的可編程訪問的對象,如何確保其安全性是在具體應用中必須考慮的一個重要問題。為控制對Web服務的合法訪問,對服務使用者的身份進行驗證是很有必要的。本文主要介紹一種基于SOAP頭的Web服務身份驗證技術,并通過具體示例說明其編程模式。

1 Web服務簡介

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

2 SOAP協議概況

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

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

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

3 基于SOAP頭的身份驗證

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

3.1 基本步驟

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

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

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

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

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

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

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

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

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

3.2 應用示例

如圖3所示,為一系統登錄表單,用于對系統用戶進行身份驗證,其驗證過程是通過調用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.

主站蜘蛛池模板: 国产资源站| 国产69囗曝护士吞精在线视频| 综合社区亚洲熟妇p| 国产青榴视频| 色婷婷啪啪| 亚洲婷婷在线视频| 亚洲av综合网| 亚洲三级网站| 午夜毛片免费观看视频 | 国产欧美视频在线| 亚洲不卡av中文在线| 91久久国产热精品免费| 久久这里只有精品2| 精品国产香蕉伊思人在线| 动漫精品啪啪一区二区三区| 国产一级α片| 久久99热这里只有精品免费看| 国产全黄a一级毛片| 久久久久88色偷偷| 亚洲欧美日本国产综合在线 | 国产免费a级片| 综合色婷婷| 亚洲精品国偷自产在线91正片| 日本成人福利视频| 欧美成人看片一区二区三区 | 色哟哟色院91精品网站| 欧美日韩在线第一页| 国产成人精品综合| 亚洲国产看片基地久久1024| 亚洲侵犯无码网址在线观看| 99久久精品国产综合婷婷| 2021精品国产自在现线看| 久久香蕉国产线看精品| 天堂在线亚洲| 国产精品99一区不卡| 日韩免费成人| 久久午夜夜伦鲁鲁片不卡| 久久国产亚洲欧美日韩精品| 亚洲毛片网站| 国产视频 第一页| 国产亚洲视频播放9000| 日韩国产无码一区| 免费黄色国产视频| 午夜少妇精品视频小电影| 在线观看亚洲精品福利片| 97综合久久| 国产小视频a在线观看| 狠狠色噜噜狠狠狠狠色综合久| 99re热精品视频中文字幕不卡| 日韩中文欧美| 亚洲精品国产乱码不卡| 99久久亚洲精品影院| 亚洲成aⅴ人在线观看| 精品丝袜美腿国产一区| 国产日产欧美精品| 九色视频一区| 波多野结衣中文字幕一区二区| 日韩 欧美 小说 综合网 另类| 黄色a一级视频| 国产成人无码AV在线播放动漫 | 中文无码影院| 国产97视频在线| 国产亚洲视频中文字幕视频| 亚洲大尺度在线| 中文字幕啪啪| 国产96在线 | 国产美女91视频| 日本欧美精品| 91精品视频播放| 野花国产精品入口| 亚洲第一区在线| 久久免费视频6| 国产精品一区二区久久精品无码| 蜜桃视频一区二区| 激情综合五月网| 日韩精品欧美国产在线| 五月天综合婷婷| 2020国产精品视频| 亚洲欧洲日韩综合| 久久综合色天堂av| jizz国产在线| 一本一道波多野结衣av黑人在线|