zoukankan      html  css  js  c++  java
  • asp.net中用soapheader作验证的使用步骤: 很简单

    Asp.net页面中调用以SOAP头作验证的web services操作步骤:

    第一步:用来作SOAP验证的类必须从SoapHeader类派生,类中Public的属性将出现在自动产生XML节点中,即:

    <soap:Header>

        <UserSoapHeader xmlns="http://tempuri.org/">

          <UserName>string</UserName>

          <Pwd>string</Pwd>

        </UserSoapHeader>

    </soap:Header>


    public class UserSoapHeader : SoapHeader

    {

        private string _userName;

        private string _pwd;

     

        //public的属性将自动生成xml结点

        public string UserName

        {

            get { return _userName; }

            set { _userName = value; }

        }

     

        public string Pwd

        {

            get { return _pwd; }

            set { _pwd = value; }

        }

    }

    第二步:

    在WebServices服务类中添加一个public的属性(必须public),类型为从UserSoapHeader

    /// <summary>

    /// WebService 的摘要说明

    /// </summary>

    [WebService(Namespace = "http://tempuri.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    public class WebService : System.Web.Services.WebService

    {

    //此属性将作为验证属性

    //方法的SoapHeaderAttribute中的名称与此变量一致

        public UserSoapHeader userHeader;

     

        public WebService()

        {

            //如果使用设计的组件,请取消注释以下行

            //InitializeComponent();

        }

     

        [WebMethod]

        [SoapHeader("userHeader")]//这里很重要,名称要和定义的验证属性名称一致!

        public string HelloWorld()

        {

            //进入此方法后,userHeader将自动有值

            if (userHeader != null)

            {

                return "this is retVal : " +  userHeader.UserName;

            }

            return " check not successed ";

        }

    }

    第三步:在客户端进行调用:

    1. 添加WEB引用
    2. 实例化服务类
    3. 实例化SOAP头(在客户端将会自动生成作来作验证的属性;该属性类型为:UserSoapHeader;该属性的名称为:UserSoapHeaderValue) ;自动生成的属性生成规则为:验证类型名称+Value;
    4. 调用服务提供的方法。

    WebService s = new WebService();

            UserSoapHeader a = new UserSoapHeader();

            a.UserName = "admin";

            a.Pwd = "zz";

            s.UserSoapHeaderValue = a; //此属性是自动生成的

            Response.Write( s.HelloWorld() ); // this is retVal : admin

    很简单,完事了!

  • 相关阅读:
    感谢那些给予我无偿帮助的人!
    软件工程总结
    《暗时间》部分感想!
    四个数混合运算,数据库存题,程序集构建三层建构
    三个数混合运算和三层架构
    需求
    数据库实现,以及工厂方法模式实现
    WPF中实现
    git简单操作
    git操作??
  • 原文地址:https://www.cnblogs.com/mr-lee1976/p/4660165.html
Copyright © 2011-2022 走看看