動力節點基礎教程:Web Service訪問加密設定

Web Service head加密,可以對 Web Service設定訪問使用者名稱和密碼,增強 Web Service的安全性,使 Web Service只能被授權使用者使用。 本文我們一起來看看如何實現

Web Service訪問加密設定

動力節點基礎教程:Web Service訪問加密設定

Web Service訪問加密設定具體實現步驟如下:

1、 定義一個 soapheader派生類用來實現 WebService訪問許可權驗證

[csharp] view plaincopy

using System;

using System。Data;

using System。Configuration;

using System。Web;

using System。Web。Security;

using System。Web。UI;

using System。Web。UI。HtmlControls;

using System。Web。UI。WebControls;

using System。Web。UI。WebControls。WebParts;

///

///MySoapHeader 的摘要說明

///

public class MySoapHeader:System 。Web 。Services 。Protocols 。SoapHeader

{

private string _uname = string。Empty;//webservice訪問使用者名稱

public string Uname

{

get { return _uname; }

set { _uname = value; }

}

private string _password = string。Empty;//webservice訪問密碼

public string Password

{

get { return _password; }

set { _password = value; }

}

public MySoapHeader()

{

//

//TODO: 在此處新增建構函式邏輯

//

}

public MySoapHeader(string uname, string upass)

{

init(uname, upass);

}

private void init(string uname, string upass)

{

this。_password = upass;

this。_uname = uname;

}

//驗證使用者是否有權訪問內部介面

private bool isValid(string uname, string upass, out string msg)

{

msg = “”;

if (uname == “admin” && upass ==“admin”)

{

return true;

}

else {

msg = “對不起!您無權呼叫此WebService!”;

return false;

}

}

//驗證使用者是否有權訪問外部介面

public bool isValid(out string msg)

{

return isValid(_uname, _password,out msg);

}

}

2、 定義有需要驗證的 Web Service。

[csharp] view plaincopy

using System;

using System。Collections;

using System。Linq;

using System。Web;

using System。Web。Services;

using System。Web。Services。Protocols;

using System。Xml。Linq;

///

///test 的摘要說明

///

[WebService(Namespace = “http://tempuri。org/”)]

[WebServiceBinding(ConformsTo = WsiProfiles。BasicProfile1_1)]

//若要允許使用 ASP。NET AJAX 從指令碼中呼叫此 Web 服務,請取消對下行的註釋。

// [System。Web。Script。Services。ScriptService]

public class test : System。Web。Services。WebService {

public test () {

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

//InitializeComponent();

}

public MySoapHeader myheader = new MySoapHeader();

[WebMethod]

public string HelloWorld() {//普通WebService,無需驗證

return “Hello World”;

}

[SoapHeader(“myheader”)]//加入此頭部的WebService需要驗證,不加則為普通WebService無需驗證

[WebMethod(Description = “根據產品編號查詢產品的價格”, EnableSession = true)]

public string GetProductPrice2(string ProductId)

{

string msg = “”;

//驗證是否有權訪問

if (!myheader。isValid(out msg))

{

return -1;//返回錯誤資訊

}

return ProductId;

}

}

3、 客戶端呼叫方法

引用 WebService定義 WebService名稱為 :Myservice

[csharp] view plaincopy

using System;

using System。Configuration;

using System。Data;

using System。Web;

using System。Web。Security;

using System。Web。UI;

using System。Web。UI。HtmlControls;

using System。Web。UI。WebControls;

using System。Web。UI。WebControls。WebParts;

public partial class _Default : System。Web。UI。Page

{

protected void Page_Load(object sender, EventArgs e)

{

myservice。test te = new abc。test();

myservice。MySoapHeader myhead = new MySoapHeader();

myhead。Uname = “admin”;//輸入WebService訪問使用者名稱

myhead。Password = “admin”;//輸入WebService訪問密碼

te。MySoapHeaderValue = myhead;//

string test = te。GetProductPrice2(“ok!”);

Response。Write(aa);//使用者名稱、密碼輸入正確則輸出ok 否則輸出 錯誤msg

}

}

倘若完成了以上三個步驟,就能完成對Web Service訪問加密設定了。掌握如何用Web Service訪問加密設定是極其必要的,隨著網際網路的飛速發展,人們的個人資訊也越來越資料化,這就需要保證這些個人資料的安全性,設定訪問許可權。在本站的Java教程裡還有更多的涉及程式安全的例項,我們可以自己下載學習,提升自我。