C# 如何向Soap头添加附加参数

C# 如何向Soap头添加附加参数,c#,.net,winforms,web-services,asmx,C#,.net,Winforms,Web Services,Asmx,我有一个连接到服务的应用程序。我想在Soap头中添加一个额外的参数,我应该在哪里添加这个参数 protected override WebRequest GetWebRequest(Uri uri) { //apptoken name to be sent instead of caller app name - 10.1 this.RequestSoapContext.Addressing.From = new Uri(ServiceConfig

我有一个连接到服务的应用程序。我想在Soap头中添加一个额外的参数,我应该在哪里添加这个参数

    protected override WebRequest GetWebRequest(Uri uri)
    {
        //apptoken name to be sent instead of caller app name - 10.1
        this.RequestSoapContext.Addressing.From = new Uri(ServiceConfiguration.APPTOKEN, UriKind.Relative);

        WebRequest req = base.GetWebRequest(uri);

        req.Headers.Add(ServiceConfiguration.HEADER_COOKIE_NAME_C, ServiceConfiguration.HEADER_COOKIE_VALUE);
        req.Method = ServiceConfiguration.REQUEST_METHOD;
        req.ContentType = ServiceConfiguration.REQUEST_CONTENT_TYPE;

        string smsession = GetSMSessionCookie();
        if (smsession != "")
        {
            req.Headers.Add(ServiceConfiguration.HEADER_COOKIE_NAME_C, smsession);
        }

        m_webRequest = req;
        return req;


    }
我在一个web服务类中有这个。但我觉得这似乎是一个Http头

我在另一个类中也有这个,我指定了常量

    public const string REQUEST_METHOD = "POST";
    public const string REQUEST_CONTENT_TYPE = "text/xml";

    public const string HEADER_SOAP_ACTION_NAME = "SOAPAction";
    public const string HEADER_SOAP_ACTION_VALUE = "/";

    public const string HEADER_COOKIE_VALUE = "SMCHALLENGE=YES";

    public const string HEADER_APPLICATION_NAME = "APPLICATION_NAME";
    public const string HEADER_APPLICATION_VALUE = "XLS";

    public const string COOKIE_SMSESSION = "SMSESSION=";
    public const string HEADER_COOKIE_NAME_C = "Cookie";
    public const string HEADER_COOKIE_NAME_SETC = "Set-Cookie";
    public const string HEADER_COOKIE_SEPARATOR = ";";
有人能帮助我如何在SOAP请求头中添加我自己的附加参数吗


我使用的是winforms.net 4.0 c#。

我不确定您的问题是否正确,但您可以通过键入来添加自定义标题
请求标题添加(“customheadername”、“value”)

请参考@juanreyesv:no,他使用的是传统的ASMX web服务技术。服务是否定义了此标头?您不能只在ASMX web服务客户端中添加任意头。@JohnSaunders-我想我的使用svc。@JohnSaunders-我在web服务方面很差,我知道我的解决方案中的服务类中有一个自动生成的代码。所以现在在服务部分有一个额外的参数被添加到“Header”中,所以我需要通过我的应用程序从Header发送这个参数。如何做到这一点?@juanreyesv是否有一个名为SoapHeaderAttribute()的方法允许您添加标头?不,这将添加到HTTP标头,而不是SOAP标头。@JohnSaunders-您看到了吗