Web Service 的身份验证

最近遇到一个问题,暴露在网络上的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的写法

 

 

ExpandedBlockStart.gif 代码
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;
          //加入验证权限的方法,如果之前的SOAPHeader中已经有方法这里可以直接调用
      return   " Hello World " ;
     
 }

 

 

客户端调用时的代码比较简单:

 

ExpandedBlockStart.gif 代码
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方法  

转载于:https://www.cnblogs.com/Zane_Yao/archive/2010/02/01/1661337.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值