Thanks for your responses, it seems that it works. Thank you Stefano
----- Original Message ----- From: "Abhinav Maheshwari" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, March 11, 2004 2:27 PM Subject: RE: C# Cllient , Axis Server, Session Management > Hi Stefan, > I am pasting a wsdl for your reference. Please see the embedded comments. > > On the client side, C# needs to see the SessionID element in WSDL so that it > can create member variable SessionID for the service. But Axis does not > generate such a WSDL. Hence you need to modify the WSDL produced by Axis and > manually add the SessionID element. Then you should use the modified WSDL in > Visual Studio. Following is an example of the modified WSDL with the > comments preceding the modifications. > > After you show this WSDL to Visual Studio, it will generate the proxy and > you can retreive the Session ID by using authenticationService.SessionID. > Hope this helps. > > Warm Regards, > Abhinav Maheshwari > > > > <wsdl:definitions > targetNamespace="http://tornado/portfolioip/services/AuthenticationService" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:tns2="http://pair.biz.portfolioip.its.com" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:tns1="http://exception.services.portfolioip.its.com" > xmlns:impl="http://tornado/portfolioip/services/AuthenticationService" > xmlns:intf="http://tornado/portfolioip/services/AuthenticationService" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:fip="http://foundationip.com/services" > xmlns="http://schemas.xmlsoap.org/wsdl/"><wsdl:types><schema > xmlns="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://exception.services.portfolioip.its.com"><import > namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType > name="InvalidUsernameException"><sequence><element name="message" > nillable="true" type="xsd:string"/></sequence></complexType><complexType > name="InvalidPasswordException"><sequence><element name="message" > nillable="true" type="xsd:string"/></sequence></complexType></schema><schema > xmlns="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://pair.biz.portfolioip.its.com"><import > namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType > name="AuthenticationFacadeException"><sequence><element name="message" > nillable="true" type="xsd:string"/></sequence></complexType></schema> > > <!-- added session ID element. The namespace must match the namespace in > SessionHandler --> > <schema xmlns="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://foundationip.com/services"> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> > <complexType name="SessionID"> > <sequence> > <element name="ID" minOccurs="1" maxOccurs="1" > type="xsd:string" /> > </sequence> > </complexType> > </schema> > <!-- end of session ID element --> > > </wsdl:types> > > <!-- added a header for session --> > <wsdl:message name="sessionHeader"> > <wsdl:part name="SessionID" type="fip:SessionID" /> > </wsdl:message> > <!-- end of session header --> > > <wsdl:message name="authenticateResponse"> > </wsdl:message> > <wsdl:message name="authenticateRequest"> > <wsdl:part name="userName" type="xsd:string"/> > <wsdl:part name="password" type="xsd:string"/> > </wsdl:message> > <wsdl:message name="InvalidUsernameException"> > <wsdl:part name="fault" type="tns1:InvalidUsernameException"/> > </wsdl:message> > <wsdl:message name="AuthenticationFacadeException"> > <wsdl:part name="fault" type="tns2:AuthenticationFacadeException"/> > </wsdl:message> > <wsdl:message name="InvalidPasswordException"> > <wsdl:part name="fault" type="tns1:InvalidPasswordException"/> > </wsdl:message> > <wsdl:portType name="AuthenticationService"> > <wsdl:operation name="authenticate" parameterOrder="userName password"> > <wsdl:input name="authenticateRequest" > message="impl:authenticateRequest"/> > <wsdl:output name="authenticateResponse" > message="impl:authenticateResponse"/> > <wsdl:fault name="AuthenticationFacadeException" > message="impl:AuthenticationFacadeException"/> > <wsdl:fault name="InvalidPasswordException" > message="impl:InvalidPasswordException"/> > <wsdl:fault name="InvalidUsernameException" > message="impl:InvalidUsernameException"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="AuthenticationServiceSoapBinding" > type="impl:AuthenticationService"> > <wsdlsoap:binding style="rpc" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="authenticate"> > <wsdlsoap:operation soapAction=""/> > <wsdl:input name="authenticateRequest"> > <wsdlsoap:body use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://localhost/portfolioip/services/AuthenticationService"/> > </wsdl:input> > <wsdl:output name="authenticateResponse"> > > <!-- Authentication service returns a Session ID. If a service needs > a session ID during request, this element should also be present in request > definition --> > > <wsdlsoap:header use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > message="impl:sessionHeader" part="SessionID" /> > <wsdlsoap:body use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://tornado/portfolioip/services/AuthenticationService"/> > </wsdl:output> > <wsdl:fault name="AuthenticationFacadeException"> > <wsdlsoap:fault use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://tornado/portfolioip/services/AuthenticationService"/> > </wsdl:fault> > <wsdl:fault name="InvalidPasswordException"> > <wsdlsoap:fault use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://tornado/portfolioip/services/AuthenticationService"/> > </wsdl:fault> > <wsdl:fault name="InvalidUsernameException"> > <wsdlsoap:fault use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > namespace="http://tornado/portfolioip/services/AuthenticationService"/> > </wsdl:fault> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="AuthenticationServiceService"> > <wsdl:port name="AuthenticationService" > binding="impl:AuthenticationServiceSoapBinding"> > <wsdlsoap:address > location="http://tornado/portfolioip/services/AuthenticationService"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > > -----Original Message----- > From: Srinivas Vemula [mailto:[EMAIL PROTECTED] > Sent: Thursday, March 11, 2004 3:29 PM > To: [EMAIL PROTECTED] > Subject: Re: C# Cllient , Axis Server, Session Management > > > Hi Stefan, > > > <complexType name="SessionID"> > <sequence> > <element name="ID" minOccurs="1" maxOccurs="1" > type="xsd:string" /> > </sequence> > </complexType> > </schema> > <!-- end of session ID element --> > > </wsdl:types> > See if this works.. > srini > Stefano Sambi wrote: > > I'm trying to use your SessionHandler to manage session between C# client > and Axis web service but I do not succeed to set the SOAP header in my wsdl. > Can you send me an example of your wsdl? And also how do you manage sessions > in your C# client? > > Here it's my changes to wsdl that don't work: > I added the definition of sessionID element in 'Types' section: > <wsdl:types> > <xsd:schema targetNamespace=http://localhost/axis/services/MyService> > <xsd:complexType name="Session"> > <xsd:sequence> > <xsd:element name="sessionID"> > <xsd:complexType> > <xsd:sequence> > <xsd:element name="ID" type="xsd:string"/> > </xsd:sequence> > </xsd:complexType> > </xsd:element> > </xsd:sequence> > </xsd:complexType> > </xsd:schema> > </wsdl:types> > > I added the definition of soap header message in 'Messages' section: > <wsdl:message name="soapHeader"> > <wsdl:part name="SessionID" type="impl:Session" > xmlns:impl=http://localhost/axis/services/MyService/> > </wsdl:message> > > and I added the soap header binding to my operation in 'Binding' section: > <wsdlsoap:header message="impl:soapHeader" part="SessionID" use="encoded" > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> > > > > Thanks > Stefano > > ----- Original Message ----- > From: "Abhinav Maheshwari" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Monday, February 16, 2004 3:15 PM > Subject: RE: C# Cllient , Axis Server, Session Management > > > > Hi Srinivas, > You need to use the SessionHandler to maintain session information but > > there > > are problems with using the one supplied with Axis. This is a modified > version of the SessionHandler supplied with Axis which can be used. > > Also, you need to manually put the SOAP Header in the WSDL generated by > > Axis > > so that Visual Studio can generate the code for session variables. > > Regards, > Abhinav > > -----Original Message----- > From: Srinivas Vemula [mailto:[EMAIL PROTECTED] > Sent: Monday, February 16, 2004 6:30 PM > To: [EMAIL PROTECTED] > Subject: C# Cllient , Axis Server, Session Management > > > Hi All, > I am new to using axis. We are trying to communciate from a .NET > C# client. Can any one let me know, how to track sessions in this > scenario? Basically, we would like to put some authorization info in a > session object as the first call from the client will be for > > authentication. > > After that client will call other Axis (web) services for executing > some more tasks. We would like to check for the authorization > information for subsequent calls from the same client and deny services > if we dont find the relevant information in the session object . > Any help or pointers to solve this? Thank you all for your help and > time. > srini > > -- > Srinivas Vemula +91 40 23547826- Ext 201 > Associate Consultant +91 40 23541447 (Fax) > Mensamind +91 98497-42720 (Mobile) > Hyderabad > India > http://www.mensamind.com > > DISCLAIMER > The information contained in this e-mail is confidential and intended for > the named recipient(s) only. If you are not an intended recipient of this > email you must not copy, distribute or take any further action in reliance > on it. You should delete it and notify the sender immediately. > > > > > > > -- > Srinivas Vemula +91 40 23547826- Ext 201 > Associate Consultant +91 40 23541447 (Fax) > Mensamind +91 98497-42720 (Mobile) > Hyderabad > India > http://www.mensamind.com > > DISCLAIMER > The information contained in this e-mail is confidential and intended for > the named recipient(s) only. If you are not an intended recipient of this > email you must not copy, distribute or take any further action in reliance > on it. You should delete it and notify the sender immediately. > >