Asp.net頁面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟

字號(hào):


    本文為大家分享了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ì)的組件,請(qǐng)取消注釋以下行
        //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頭(在客戶端將會(huì)自動(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)證的步驟,謝謝大家的閱讀。