A generic (but complete) example of WS-Federation as implemented in .NET