C#中Web Service身分識別驗證

來源:互聯網
上載者:User

最近遇到一個問題,暴露在網路上的Web Service如何做身分識別驗證,而不被其他人說是用, 花了一天的時間去看書,瞭解到三種方法,再下面記錄其中兩種,另一種是Form驗證,個人並不能完全瞭解清楚,所以也不在這誤人子弟了,閑話不說,開始:

  第一種方案:通過 SOAP Header

  首先需要我們自己去實現一個有身分識別驗證資訊的類,這個類繼承System.Web.Services.Protocols.SoapHeader,而且定義兩個成員變數,一個為UserName,一個為PassWord.

  public class MySoapHeader:SoapHeader

  {

  public string UserName

  {

  get;

  set;

  }

  public string PassWord;

  {

  get;

  set;

  }

  }

  也可以在此類中加入驗證方法,當然需要看您項目的具體規劃

  接下來是Web Service的寫法

  代碼

  public class WebService : System.Web.Services.WebService

  {

  public WebService()

  {

  //如果使用設計的組件,請取消注釋以下行

  //InitializeComponent();

  }

  public MySoapHeader header;

  ////定義使用者身分識別驗證類變數header

  [WebMethod(Description = "使用者驗證測試")]

  [System.Web.Services.Protocols.SoapHeader("header")]//使用者身分識別驗證的soap頭

  public string HelloWorld()

  {

  string userName = header.UserName;

  string passWord = header.PassWord;

  return "Hello World";

  //加入驗證許可權的方法,如果之前的SOAPHeader中已經有方法這裡可以直接調用

  }

  }

  用戶端調用時的代碼比較簡單:

  代碼

  com.WebService test = new com.WebService();//你的web Service

  MySoapHeader Header = new MySoapHeader();//web引用建立soap頭對象

  //設定soap頭變數

  Header.UserName = "Zane";

  Header.PassWord = "Yao";

  test.MySoapHeaderValue = Header;

  //調用web 方法

  Response.Write(test.HelloWorld());

  這樣就完成了~

  第二個方案: 將web服務程式設為整合windows身分識別驗證,當然需要將匿名訪問關閉,

  用戶端web引用代碼

  Test.WebReference.Service wr = new Test.WebReference.Service(); //產生web service執行個體

  wr.Credentials = new NetworkCredential("使用者名稱","密碼");

  Response.Write(wr.HelloWorld()); //調用web service方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.