ASP.NET also implements a number of other features for enhancing Web services. For example, sometimes you want to include some metadata as part of a method call. For example, if you want to ensure only paying clients call your Web methods, you might issue them a token to prove they bought the service. The SOAP specification defines SOAP headers as a way to include such metadata in the method call.
In addition, it's sometimes useful to install pre- and post processing for Web methods. ASP.NET supports various SOAP extensions. For example, if you wanted to write your own encryption mechanism, you might write a client-side and a service-side extension that encrypts and unencrypts messages interacting with your server.