When creating many services in SOA it's a common scenario that you need the SAML token to flow from one business service to another. The first issue that you will bump into when trying to enable this is that the SamlAssertion class in .NET 3.0 is not re-serializable, but it's fixed in the .NET 3.5. Fortunately there is a really good post "
Re-Serialize SAML token" that describes in a step-by-step guide how to solve this issue. One thing that occurs to me when reading this kind of posts is how extensible WCF is.
I only did some small changes to the code described in that post. One of things I did was, as suggested in the first comment, to store the SAML assertion in a string that I could use for re-serializing so that I did not need to use the XmlDocument.