Having trouble with implementing a SOAP header

Discussion in 'ASP .Net Web Services' started by Friso Wiskerke, Jan 24, 2006.

  1. Hi all,

    I'm trying to use a webservice which is provided to me by a third party.
    There are a number of webmethods that I can call but for each method I have
    to supply a SOAP header which contains an identification-token. I've managed
    to generate a proxy class using the wsdl.exe tool but the wsdl doesn't have
    the SOAP header definition in it (quite frustrating).

    I'm trying to enhance the generated class so that I can issue the header to
    the webservice but I'm not having much luck.It should look like this
    according to the documentation:
    <soap:Header>
    <AuthToken>ABCDEFGHIJKLMNOP</AuthToken>
    </soap:Header>

    Does anybody know how I can achieve this in my VB app (C# code samples are
    also welcome)?

    TIA,
    Friso Wiskerke
     
    Friso Wiskerke, Jan 24, 2006
    #1
    1. Advertising

  2. SoapHeaders are generated as properties of your Proxy object you
    created using WSDL. For your AuthToken header, it should be a property
    such as

    Proxy p = new Proxy();
    p.AuthToken = "ABCEFGHIJKLMNOP";

    Is this not the fact?
     
    Javier G. Lozano, Jan 24, 2006
    #2
    1. Advertising

  3. Javier,

    I think this would be the case if the soap:Header definition is in the
    WSDL... and for some reason it isn't. That's why I'm looking for a way to
    add the header myself.

    In the example you stated I assume the AuthToken is a string variable and
    not a class that inherits from System.Web.Services.Protocols.SoapHeader. I
    don't think that this property would result in a soap header when the
    message is wrapped into a soap envelope by the proxy object.

    Thanks,
    Friso Wiskerke


    "Javier G. Lozano" <> wrote in message
    news:...
    > SoapHeaders are generated as properties of your Proxy object you
    > created using WSDL. For your AuthToken header, it should be a property
    > such as
    >
    > Proxy p = new Proxy();
    > p.AuthToken = "ABCEFGHIJKLMNOP";
    >
    > Is this not the fact?
    >
     
    Friso Wiskerke, Jan 25, 2006
    #3
  4. Friso Wiskerke

    CG Guest

    You might want to get wsdl file again.

    If header is defined you should get that in WSDL file.

    here is an example


    <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://tempuri.org/"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    targetNamespace="http://tempuri.org/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified"
    targetNamespace="http://tempuri.org/">
    <s:import namespace="http://www.w3.org/2001/XMLSchema" />
    - <s:element name="ApplicationBlockDataSet">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="custid" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    - <s:element name="ApplicationBlockDataSetResponse">
    - <s:complexType>
    - <s:sequence>
    - <s:element minOccurs="0" maxOccurs="1" name="ApplicationBlockDataSetResult">
    - <s:complexType>
    - <s:sequence>
    <s:element ref="s:schema" />
    <s:any />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="mySoapHeader" type="tns:mySoapHeader" />
    - <s:complexType name="mySoapHeader">
    - <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="user" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="pwd" type="s:string" />
    </s:sequence>
    </s:complexType>
    - <s:element name="ReturnCustomerOrders">
    <s:complexType />
    </s:element>
    - <s:element name="ReturnCustomerOrdersResponse">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="ReturnCustomerOrdersResult"
    type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    - <wsdl:message name="ApplicationBlockDataSetSoapIn">
    <wsdl:part name="parameters" element="tns:ApplicationBlockDataSet" />
    </wsdl:message>
    - <wsdl:message name="ApplicationBlockDataSetSoapOut">
    <wsdl:part name="parameters" element="tns:ApplicationBlockDataSetResponse"
    />
    </wsdl:message>
    - <wsdl:message name="ApplicationBlockDataSetmySoapHeader">
    <wsdl:part name="mySoapHeader" element="tns:mySoapHeader" />
    </wsdl:message>
    - <wsdl:message name="ReturnCustomerOrdersSoapIn">
    <wsdl:part name="parameters" element="tns:ReturnCustomerOrders" />
    </wsdl:message>
    - <wsdl:message name="ReturnCustomerOrdersSoapOut">
    <wsdl:part name="parameters" element="tns:ReturnCustomerOrdersResponse" />
    </wsdl:message>
    - <wsdl:portType name="Service1Soap">
    - <wsdl:eek:peration name="ApplicationBlockDataSet">
    <wsdl:input message="tns:ApplicationBlockDataSetSoapIn" />
    <wsdl:eek:utput message="tns:ApplicationBlockDataSetSoapOut" />
    </wsdl:eek:peration>
    - <wsdl:eek:peration name="ReturnCustomerOrders">
    <wsdl:input message="tns:ReturnCustomerOrdersSoapIn" />
    <wsdl:eek:utput message="tns:ReturnCustomerOrdersSoapOut" />
    </wsdl:eek:peration>
    </wsdl:portType>
    - <wsdl:binding name="Service1Soap" type="tns:Service1Soap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
    style="document" />
    - <wsdl:eek:peration name="ApplicationBlockDataSet">
    <soap:eek:peration soapAction="http://tempuri.org/ApplicationBlockDataSet"
    style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    <soap:header message="tns:ApplicationBlockDataSetmySoapHeader"
    part="mySoapHeader" use="literal" />
    </wsdl:input>
    - <wsdl:eek:utput>
    <soap:body use="literal" />
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    - <wsdl:eek:peration name="ReturnCustomerOrders">
    <soap:eek:peration soapAction="http://tempuri.org/ReturnCustomerOrders"
    style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:eek:utput>
    <soap:body use="literal" />
    </wsdl:eek:utput>
    </wsdl:eek:peration>
    </wsdl:binding>
    - <wsdl:service name="Service1">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/" />
    - <wsdl:port name="Service1Soap" binding="tns:Service1Soap">
    <soap:address
    location="http://cgupta/dataapplicationblocktest/service1.asmx" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>





    "Friso Wiskerke" wrote:

    > Javier,
    >
    > I think this would be the case if the soap:Header definition is in the
    > WSDL... and for some reason it isn't. That's why I'm looking for a way to
    > add the header myself.
    >
    > In the example you stated I assume the AuthToken is a string variable and
    > not a class that inherits from System.Web.Services.Protocols.SoapHeader. I
    > don't think that this property would result in a soap header when the
    > message is wrapped into a soap envelope by the proxy object.
    >
    > Thanks,
    > Friso Wiskerke
    >
    >
    > "Javier G. Lozano" <> wrote in message
    > news:...
    > > SoapHeaders are generated as properties of your Proxy object you
    > > created using WSDL. For your AuthToken header, it should be a property
    > > such as
    > >
    > > Proxy p = new Proxy();
    > > p.AuthToken = "ABCEFGHIJKLMNOP";
    > >
    > > Is this not the fact?
    > >

    >
    >
    >
     
    CG, Jan 25, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. mlt
    Replies:
    2
    Views:
    907
    Jean-Marc Bourguet
    Jan 31, 2009
  2. datagrid having row header and column header

    , Jul 13, 2006, in forum: ASP .Net Datagrid Control
    Replies:
    0
    Views:
    197
  3. Yelena

    I'm having a problem creating SOAP header in a .NET

    Yelena, Jan 5, 2006, in forum: ASP .Net Web Services
    Replies:
    1
    Views:
    146
    Yelena
    Jan 11, 2006
  4. Peter van der veen

    How to add SOAP header to a SOAP message?

    Peter van der veen, Nov 8, 2006, in forum: ASP .Net Web Services
    Replies:
    6
    Views:
    643
    J. Dudgeon
    Nov 14, 2006
  5. Vipin Vm
    Replies:
    3
    Views:
    285
    Vassilis Rizopoulos
    Jul 22, 2008
Loading...

Share This Page