In Chapter 3, you saw how SOAP headers can extend SOAP by sending information outside the message body. The SOAP toolkit lets you send and receive SOAP headers by implementing an interface called IHeaderHandler. In this section I'll show you how to expose services that use headers and how to invoke a service that requires them.
Consider the simple server class called Stores in Listing 5.15. This server exposes two properties named UserId and Password. At runtime, it assumes these properties have been populated before GetStoreSales is called.