1. 首先需要在服務(wù)中定義一個從 SOAPHeader 派生的類,表示傳入 SOAP 標(biāo)頭的數(shù)據(jù).
public class SecurityHeader: System.Web.Services.Protocols.SoapHeader
 {
     public string userName;
     public string passWord;
     public string key;

     public SecurityHeader()
     {
     }
 }
2. 將SecurityHeader類作為webservice類的一個屬性公開,并在WebMethod里使用SecurityHeader
    這樣就允許客戶使用這個SoapHeader了。
public class Map : System.Web.Services.WebService
 {
      public SecurityHeader keyHeader;
      public Map()
      {
      }

       [WebMethod,SoapHeader("keyHeader")]
      public string HelloWorld()
      {
          //這里我們可以獲得客戶傳來的header值按需要做驗證等處理
           string keyValue = keyHeader.key ;
           return keyValue;
      }
}

客戶端使用SoapHeader的方法如下(調(diào)用之前先聲明webreference MapClient):
  MapService.MapClient.SecurityHeader header = new MapService.MapClient.SecurityHeader();
   header.userName = "userName";
   header.passWord = "passWord";
   header.key = "Hello,this is a key....";

   MapClient.Map testClient = new MapService.MapClient.Map();
   testClient.SecurityHeaderValue = header;
   testClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
   string ss = testClient.HelloWorld();