asp.net webservice 安全 验证

时间:2015/12/3 17:20:00来源:互联网 作者:flyso 点击: 1398 次

做了一段时间的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();  
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。 


Copyright © 2005 - 2016 flyso.cn. 飞搜 版权所有 鄂ICP备11002783号-3