Microsoft recently released the Web Service Development Kit (WSDK) which opens an exciting new era in the world of Web Service development. Using WS-Security classes within the WSDK you can now authenticate Web Service users using X.509 certificates or username/password, digitally sign SOAP messages, and encrypt SOAP messages. In addition to these features, the WSDK allow you to route Web Service calls between different machines with WS-Routing and add SOAP attachments with DIME.
This sample application demonstrates how to authenticate users via username and password and digitally sign a SOAP message to ensure no tampering of the message occurred as it was sent to the Web Service. It includes a sample web.config file with the necessary WSDK entries, a sample class that implements the IPasswordProvider interface, a test proxy, and other code to show you this SOAP signing technique.