C# 调用Java Webservice 加入SoapHeader 验证信息

C#调用java 编写的webservice时不会自动生成 soapheader 类接口的,需要改动Reference.cs

在生成的代理类referende.cs中进行如下操作:

一、在声明public new string Url{....}前声明 public AuthenticationToken header { get; set; },然后在相应位置添加

/// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public class AuthenticationToken : System.Web.Services.Protocols.SoapHeader
    {
        /// <remarks/>
        public string Username{ get;  set;  }  //要传入的账号

        /// <remarks/>
        public string Password { get; set; }   //要传入的密码
    }   

二、 在要调用的接口的方法前添加(注:Referende.cs 中的方法)

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("header")]

三、页面中调用用方法

 GuestService gs = new GuestService(); //引用的服务
 AuthenticationToken t = new AuthenticationToken();
 t.Username = "admin123";
 t.Password = "admin123";
 gs.header = t;
 gs.methodName();

来自为知笔记(Wiz)