一、建立WEB項目,添加WEB服務WebService1.asmx,代碼以下:web
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Services; 6 7 namespace WebService 8 { 9 /// <summary> 10 /// WebService1 的摘要說明 11 /// </summary> 12 [WebService(Namespace = "http://tempuri.org/")] 13 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 14 [System.ComponentModel.ToolboxItem(false)] 15 // 若要容許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的註釋。 16 // [System.Web.Script.Services.ScriptService] 17 public class WebService1 : System.Web.Services.WebService 18 { 19 20 //聲明Soap頭實例 21 public MySoapHeader myHeader = new MySoapHeader(); 22 23 [System.Web.Services.Protocols.SoapHeader("myHeader")] 24 [WebMethod] 25 public string HelloWorld() 26 { 27 if (isAuthorized) 28 { 29 return "Hello World"; 30 } 31 else 32 { 33 return "You do not have power to do this operation!"; 34 } 35 } 36 37 [System.Web.Services.Protocols.SoapHeader("myHeader")] 38 [WebMethod] 39 public string InputYouName(string name) 40 { 41 if (isAuthorized) 42 { 43 return "Hello " + name; 44 } 45 else 46 { 47 return "You do not have power to do this operation!"; 48 } 49 } 50 51 /// <summary> 52 /// 判斷用戶是否得到使用受權 53 /// </summary> 54 public bool isAuthorized 55 { 56 get 57 { 58 if (myHeader.UserName.Equals("pwd") & myHeader.PassWord.Equals("pwd")) 59 { 60 return true; 61 } 62 else 63 { 64 return false; 65 } 66 } 67 } 68 } 69 }
二、加入安全驗證,在這個web項目中添加一個類文件MySoapHeader.cs,具體代碼以下:安全
1 using System; 2 using System.Collections.Generic; 3 using System.Web; 4 5 namespace WebService 6 { 7 public class MySoapHeader : System.Web.Services.Protocols.SoapHeader 8 { 9 private string userName = string.Empty; 10 private string passWord = string.Empty; 11 12 /// <summary> 13 /// 構造函數 14 /// </summary> 15 public MySoapHeader() { } /// <summary> 16 /// 構造函數 17 /// </summary> 18 /// <param name="userName">用戶名</param> 19 /// <param name="passWord">密碼</param> 20 public MySoapHeader(string userName, string passWord) 21 { 22 this.userName = userName; 23 this.passWord = passWord; 24 } 25 26 /// <summary> 27 /// 獲取或設置用戶用戶名 28 /// </summary> 29 public string UserName 30 { 31 get { return userName; } 32 set { userName = value; } 34 } 35 36 /// <summary> 37 /// 獲取或設置用戶密碼 38 /// </summary> 39 public string PassWord 40 { 41 get { return passWord; } 42 set { passWord = value; } 43 } 44 } 45 }
三、客戶端調用,新建一個項目,建立一個控制檯程序,調用示例的詳細代碼以下:函數
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WebServiceControlClient { class Program { static void Main(string[] args) { Service.WebService1SoapClient aa = new Service.WebService1SoapClient(); Service.MySoapHeader Header = new Service.MySoapHeader(); Header.PassWord = "pwd"; Header.UserName = "pwd"; Console.WriteLine(aa.HelloWorld(Header)+"\n"+aa.InputYouName(Header,"harry")); Console.Read(); } } }