扩展SOAP header实现Web Services安全性

服务端

using  System;
using  System.Web;
using  System.Web.Services;
using  System.Web.Services.Protocols;

[WebService(Namespace 
=   " http://tempuri.org/ " )]
[WebServiceBinding(ConformsTo 
=  WsiProfiles.BasicProfile1_1)]
public   class  Service : System.Web.Services.WebService
{
    
public  Service () {

        
// 如果使用设计的组件,请取消注释以下行 
        
// InitializeComponent(); 
    }

    
public  MySoapHeader mh;

    [WebMethod, SoapHeader(
" mh " )]
    
public   string  HelloWorld() 
    {
        IsValid();
        
return   " Hello World " ;
    }

    
private   bool  IsValid()
    {
        
if  ( this .mh  ==   null
            
||   this .mh.Username  ==   null
            
||   this .mh.Password  ==   null )
        {
            
throw   new  SoapException( " 没有提供信任令牌 " ,
                SoapException.ClientFaultCode, 
" Security " );
        }
        
// TODO:添加自定义验证
         return   true ;
    }
}

///   <summary>
///  定义SoapHeader.
///   </summary>
public   class  MySoapHeader : SoapHeader
{
    
public   string  Username;
    
public   string  Password;
}

 客户端

private   void  button1_Click( object  sender, EventArgs e)
        {
            
try
            {
                localhost.MySoapHeader m 
=   new  WindowsApplication1.localhost.MySoapHeader();
                m.Username 
=   " test " ;
                m.Password 
=   " test " ;
                localhost.Service s 
=   new  WindowsApplication1.localhost.Service();
                s.MySoapHeaderValue 
=  m;
                MessageBox.Show(s.HelloWorld());
            }
            
catch  (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值