WCF XML CustomBinding equivalent in C#?

Viewed 17

I have this xml config of a CustomBinding and I want to transcode it to C#.

<customBinding>
    <binding name="name">
        <security defaultAlgorithmSuite="Default" authenticationMode="MutualCertificate"
            requireDerivedKeys="true" includeTimestamp="true" messageProtectionOrder="EncryptBeforeSign"
            messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
            requireSignatureConfirmation="true">
            <localClientSettings detectReplays="true" />
            <localServiceSettings detectReplays="true" />
        </security>
        <binaryMessageEncoding />
        <httpTransport />
    </binding>
</customBinding>

What would be the equivalent?

1 Answers

You may try the code below to convert the configuration file into code :

Uri epUri = new Uri(_serviceUri);
CustomBinding binding = new CustomBinding();
SecurityBindingElement sbe = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
sbe.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11;        
sbe.SecurityHeaderLayout = SecurityHeaderLayout.Strict;
sbe.IncludeTimestamp = false;
sbe.SetKeyDerivation(true);
sbe.KeyEntropyMode = System.ServiceModel.Security.SecurityKeyEntropyMode.ServerEntropy;
binding.Elements.Add(sbe);
binding.Elements.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap11, System.Text.Encoding.UTF8));
binding.Elements.Add(new HttpsTransportBindingElement());
EndpointAddress endPoint = new EndpointAddress(epUri);
Related