2016-08-02 10 views
0

Kann mir jemand helfen, ein bindendes Objekt in C# basierend auf der unten angegebenen Konfiguration zu erstellen. Dies wird aus app.config des Projekts kopiert, wo auf meinen WCF-Dienst verwiesen wird. Convert C# bindendes Objekt basierend auf dem System.ServiceModel

<system.serviceModel> 
    <bindings> 
     <customBinding> 
     <binding name="BindingName"> 
      <security defaultAlgorithmSuite="Default" authenticationMode="UserNameOverTransport" 
      requireDerivedKeys="true" includeTimestamp="true" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"> 
      <localClientSettings detectReplays="false" /> 
      <localServiceSettings detectReplays="false" /> 
      </security> 
      <textMessageEncoding messageVersion="Soap12" /> 
      <httpsTransport /> 
     </binding> 
     </customBinding> 
    </bindings> 
    <client> 
     <endpoint address="https://example.com/test.svc" 
     binding="customBinding" bindingConfiguration="BindingName" 
     contract="Service.IService" name="BindingName" /> 
    </client> 
    </system.serviceModel> 

Antwort

0

Versuchen Sie, diese

var config = new BindingElementCollection(); 

     TransportSecurityBindingElement transportSecurityBindingElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement(); 

     transportSecurityBindingElement.IncludeTimestamp = true; 
     transportSecurityBindingElement.MessageSecurityVersion = 
      MessageSecurityVersion 
       .WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10; 
     transportSecurityBindingElement.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Default; 
     transportSecurityBindingElement.LocalClientSettings.DetectReplays = false; 
     transportSecurityBindingElement.LocalServiceSettings.DetectReplays = false; 
     transportSecurityBindingElement.SetKeyDerivation(true); 

     config.Add(transportSecurityBindingElement); 
     config.Add(new TextMessageEncodingBindingElement(MessageVersion.Soap12, Encoding.UTF8)); 
     config.Add(new HttpsTransportBindingElement()); 

     return new CustomBinding(config); 
+0

Das ist wirklich toll funktioniert! Vielen Dank – Pradeep