一、通過SOAP Header身份驗證
此方法是通過設定SOAP Header資訊來驗證身份,主要通過以下幾步:
1、在服務端實作一個SOAP Header類
public class CredentialSoapHeader : System.Web.Services.Protocols.SoapHeader
{
//驗證身份的使用者名
public string UserId
{
get;
set;
}
//驗證身份的密碼
public string Password
}
2、建立WebService
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
public WebService()
//如果使用設計的元件,請取消注釋以下行
//InitializeComponent();
//生成一個CredentialSoapHeader類的執行個體
public CredentialSoapHeader header;
[WebMethod(Description="使用者驗證測試")]
[System.Web.Services.Protocols.SoapHeader("header")] //使用者身份驗證的soap header
public string HelloWorld(string contents)
//驗證是否有權通路(當然,也可以通過查詢資料庫實作,具體視項目要求)
if(header.UserId.equals("admin") && header.Password.equals("admin"))
{
return "Hello World " + contents;
}
else
return "無權使用此服務";
3、調用WebService
protected void Button1_Click(object sender, EventArgs e)
localhost.WebService service = new localhost.WebService();
localhost.CredentialSoapHeader header = new localhost.CredentialSoapHeader();
//設定SOAP Header
Header.UserId = "admin";
Header.Password = "admin";
service.CredentialSoapHeader = header;
//調用Web方法
Response.Write(service.HelloWorld("測試"));
二、通過內建windows身份驗證
1、将WebService設為內建Windows身份驗證
2、用戶端引用代碼
localhost.WebService service = new localhost.WebService();
service.Credentials = new NetworkCredential("guest","123"); //guest是使用者名,123是密碼
string result = service.HelloWorld("測試");
本文轉自 夢在旅途 部落格園部落格,原文連結:http://www.cnblogs.com/zuowj/p/3443088.html ,如需轉載請自行聯系原作者