(.NET)在webservice中简单使用SoapHeader

环境:visual studio 2005 --ASP.net

在我的例子中,主要是简单的定义一个SoapHeader,并且在客户端和Webservice中使用。

场景描述:

       用户在文本框中输入用户名和密码,点击提交按钮去调用一个webservice的方法来处理。在客户端发送请求的时候,用户名和密码的信息保存在soapheader中。webservice方法进行处理的时候,通过从soapheader中取出用户名和方法进行处理。

 

1、SoapHeader类的定义

   using System.Web.Services.Protocols;

 

   class MySoapHeader:SoapHeader

   {

          public string userName;

          public string password;

   }

 

2.webservice 中使用soapheader

定义一个webservice,命名为FirstService.asmx(使用自动生成的就可以了,修改一下HelloWord方法)

 

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

    public FirstService () {

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

 

   //声明一个MySoapHeader
    public MySoapHeader mySoapHeader;

 

    [WebMethod]
    [SoapHeader("mySoapHeader")]
    public string HelloWorld() {
        if (mySoapHeader.userName == "vicky")
        {
            return "ok";
        }
        return "error";
    }

 

3.客户端使用soapheader

    提交按钮的单击事件

 

protected void Button1_Click(object sender, EventArgs e)
    {        

       //new 一个webservice的代理类

        FirstService service = new FirstService();
        service.mySoapHeader.userName = userName.Text;

        service.mySoapheader.password = password.Text;


        Label3.Text = service.HelloWorld();          
    }

 

 ok,完成,可以发现当点击提交按钮时,用户名和密码是放在soap消息头中的。

 客户端发送的消息如下:

POST /WebSite1/FirstService.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/HelloWorld"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <MySoapHeader xmlns="http://tempuri.org/">
      <userName>string</userName>
      <password>string</password>
    </MySoapHeader>
  </soap:Header>
  <soap:Body>
    <HelloWorld xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>
这是最基本的使用,如果想增加webservice消息的安全,可以利用soap扩展,对soap消息中的元素进行安全处理。
客户端如图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值