asp.net webservice 安全 驗證

 

做了一段時間的webservice,跨平臺,標準化,等優點就不多說了,可是缺點也有很多。

特別是安全問題上,只要是知道webservice地址通過asp.net 的web服務就能訪問,而且方法都是顯性的,這樣覺的很不安全。

今天,我們來實現在WebService中加入安全驗證機制,這樣就有了一級的驗證了。

 

舉個例子:

建立一個webservice

public class WebService : System.Web.Services.WebService {

    public KEY key=new KEY();
    public WebService () {

        //如果使用設計的組件,請取消註釋以下行 
        //InitializeComponent();

    }

    [WebMethod]
    [SoapHeader("key")]
    public string HelloWorld() {
        if (key.IsValid())
            return "Hello World";
        else
            return "";
    }
}


建立一個操作類KEY,繼承SoapHeader

public class KEY : SoapHeader
{
	public KEY()
	{
		//
		//TODO: 在此處添加構造函數邏輯
		//
	}
    //安全密鑰  

     public string Key { get; set; }

     public bool IsValid()
     {
         return IsValid(Key);
     }

     public bool IsValid(string key)
     {
         try
         {

             string keyconfig = "123";
             if (key == keyconfig)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
         catch
         {
             return false;
         }

     }


}


調用:

WebService.WebService webs = new WebService.WebService();
WebService.KEY key = new WebService.KEY();
key.Key = "123";
webs.GNET_KEYValue = key;
show.InnerHtml = webs.HelloWorld();


如果key不對,返回空,否則返回helloworld。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章