使用自定义SOAP 标题

ZDNet软件频道 时间:2008-07-10 作者: | 中国IT实验室 我要评论()
本文关键词:标题 SOAP XML 软件
null自定义SOAP标题可以限制调用服务的用户范围 .

  null自定义SOAP标题可以限制调用服务的用户范围         using System;
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;

        [WebService(Namespace ")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        public class Service : System.Web.Services.WebService
        {
        0 public SecurityHeader currentUser;
         public Service()
         {

         //如果使用设计的组件,请取消注释以下行
         //InitializeComponent();
         }
         [WebMethod, SOAPHeader("currentUser")]
         public string GetResult(string queryString)
         {
         if(ValidateUser(currentUser.UserName,currentUser.UserPass))
         {
         return "你发送的字符串是:"+queryString;
         }
         else
         return "对不起:" + currentUser.UserName+",您不是合法的用户!";
         }
         //检验SOAP HEADER
         private bool ValidateUser(string user, string pass)
         {
         if (user.Equals("user") && pass.Equals("user"))
         return true;
         else
         return false;
         }
        }
        //自定义SOAP Header Class
        public class SecurityHeader : System.Web.Services.Protocols.SOAPHeader
        {
         public string UserName;
         public string UserPass;
        }

  下面是客户端的调用          using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Text;
        using System.Windows.Forms;
        namespace SOAPHeader
        {
         public partial class Form1 : Form
         {
         public Form1()
         {
         InitializeComponent();
         }

         private void button_Invoke_Click(object sender, EventArgs e)
         {
         SOAPHeader.localhost.SecurityHeader header = new SOAPHeader.localhost.SecurityHeader();
         header.UserName = textBox_User.Text;
         header.UserPass = textBox_Pass.Text;
         SOAPHeader.localhost.Service service = new SOAPHeader.localhost.Service();
         service.SecurityHeaderValue = header;
         this.textBox_Output.Text+=service.GetResult(this.textBox_Input.Text)+Environment.NewLine;
         }
         }
        }
 

 


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134