天天看點

ASP.NET中WebService的兩種身份驗證方法

一、通過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  ,如需轉載請自行聯系原作者