Defining a CustomBinding without a timestamp header
For WCF bindings that use message-layer security, a timestamp header will be added in the SOAP envelope to ensure the timely delivery of the message so as to prevent a potential message-replaying attach. However, some non-WCF service platforms may not expose this header. When working with this kind of service client or service, we will need to prevent the WCF message engine from generating the timestamp header.
How to do it...
Using WSHttpBinding as an example, we can create a customized binding that derives most of the setting of the built-in WSHttpBinding (but suppresses the timestamp header generation).
The following code snippet demonstrates how to create the CustomBinding
and configure the certain binding element to disable timestamp header generation.
private static Binding GetCustomHttpBinding() { WSHttpBinding wshttp = new WSHttpBinding(); var bec = wshttp.CreateBindingElements(); SecurityBindingElement secbe = bec.Find<...