Tuesday, June 9, 2009

SoapHeader Class

SOAP headers offer a method for passing data to and from an XML Web service method if the data is not directly related to the XML Web service method's primary functionality. For instance, an XML Web service might contain several XML Web service methods that each require a custom authentication scheme. Instead of adding parameters to each XML Web service method for the custom authentication scheme, aSoapHeaderAttribute, referring to a class deriving from SoapHeader, can be applied to each XML Web service method. The implementation for the class deriving from SoapHeader handles the custom authentication scheme. In this manner, the XML Web service method implements only the functionality specific to it and adds additional functionality using a SOAP header.

The following list outlines the basic steps to receiving and processing a SOAP header:

  1. Create a class that derives from SoapHeader representing the data passed into the SOAP header.

  2. Add a member to the class implementing an XML Web service or an XML Web service client proxy class, of the type created in the first step.

  3. Apply a SoapHeaderAttribute to the XML Web service method or the corresponding method in the proxy class, specifying the member created in the second step in the MemberName property.

  4. Within the XML Web service method or XML Web service client code, access the MemberName property to process the data sent in the SOAP header.

see full detail: http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapheader.aspx