Asp.net頁面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟
本文為大家分享了Asp.net頁面中調(diào)用以SOAP頭作驗(yàn)證的web services操作步驟,供大家參考,具體內(nèi)容如下
第一步:用來作SOAP驗(yàn)證的類必須從SoapHeader類派生,類中Public的屬性將出現(xiàn)在自動(dòng)產(chǎn)生XML節(jié)點(diǎn)中,即:
<soap:Header> <UserSoapHeader xmlns="http://tempuri.org/"> <UserName>string</UserName> <Pwd>string</Pwd> </UserSoapHeader> </soap:Header> public class UserSoapHeader : SoapHeader { private string _userName; private string _pwd; //public的屬性將自動(dòng)生成xml結(jié)點(diǎn) public string UserName { get { return _userName; } set { _userName = value; } } public string Pwd { get { return _pwd; } set { _pwd = value; } } }
第二步:
在WebServices服務(wù)類中添加一個(gè)public的屬性(必須public),類型為從UserSoapHeader
/// <summary> /// WebService 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class WebService : System.Web.Services.WebService { //此屬性將作為驗(yàn)證屬性 //方法的SoapHeaderAttribute中的名稱與此變量一致 public UserSoapHeader userHeader; public WebService() { //如果使用設(shè)計(jì)的組件,請取消注釋以下行 //InitializeComponent(); } [WebMethod] [SoapHeader("userHeader")]//這里很重要,名稱要和定義的驗(yàn)證屬性名稱一致! public string HelloWorld() { //進(jìn)入此方法后,userHeader將自動(dòng)有值 if (userHeader != null) { return "this is retVal : " + userHeader.UserName; } return " check not successed "; } }
第三步:在客戶端進(jìn)行調(diào)用:
1. 添加WEB引用
2. 實(shí)例化服務(wù)類
3. 實(shí)例化SOAP頭(在客戶端將會自動(dòng)生成作來作驗(yàn)證的屬性;該屬性類型為:UserSoapHeader;該屬性的名稱為:UserSoapHeaderValue) ;自動(dòng)生成的屬性生成規(guī)則為:驗(yàn)證類型名稱+Value;
4. 調(diào)用服務(wù)提供的方法。
WebService s = new WebService(); UserSoapHeader a = new UserSoapHeader(); a.UserName = "admin"; a.Pwd = "zz"; s.UserSoapHeaderValue = a; //此屬性是自動(dòng)生成的 Response.Write( s.HelloWorld() ); // this is retVal : admin
很簡單吧,希望大家都能夠掌握asp.net中用soapheader作驗(yàn)證的步驟,謝謝大家的閱讀。
相關(guān)文章
.NET Core/Framework如何創(chuàng)建委托大幅度提高反射調(diào)用的性能詳解
反射是一種很重要的技術(shù),下面這篇文章主要給大家介紹了關(guān)于.NET Core/Framework如何創(chuàng)建委托大幅度提高反射調(diào)用性能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09asp.net LINQ中數(shù)據(jù)庫連接字符串的問題
這兩天一直在用LINQ做開發(fā),也是第一次嘗試用LINQ做開發(fā),效率沒的說,開發(fā)過程中遇到一個(gè)問題困擾了我好久,今天問題終于解決了,發(fā)上來和大家分享一下,也給自己做個(gè)備忘。2010-03-03.net開發(fā)中批量刪除記錄時(shí)實(shí)現(xiàn)全選功能的具體方法
這篇文章介紹了.net開發(fā)中批量刪除記錄時(shí)實(shí)現(xiàn)全選功能的具體方法,有需要的朋友可以參考一下2013-11-11在AspNetCore中使用極驗(yàn)做行為認(rèn)證的驗(yàn)證流程
這篇文章主要介紹了在AspNetCore中使用極驗(yàn)做行為認(rèn)證的驗(yàn)證流程 ,本文有圖文介紹有實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09在?.NET?中使用?FixedTimeEquals?應(yīng)對計(jì)時(shí)攻擊的例子
在計(jì)算機(jī)安全中,計(jì)時(shí)攻擊(Timing attack)是旁道攻擊 (Side-channel attack) 的一種,而旁道攻擊是根據(jù)計(jì)算機(jī)處理過程發(fā)出的信息進(jìn)行分析,這篇文章主要介紹了在?.NET?中使用?FixedTimeEquals?應(yīng)對計(jì)時(shí)攻擊,需要的朋友可以參考下2022-06-06