将wsHttpBinding转换为customBinding

Kei*_*h K 5 wcf wcf-binding

如何将以下wsHttpBinding转换为customBinding?我需要这样,所以我可以增加时钟偏差.这是为http.

 <wsHttpBinding>
    <binding name="wsHttpSecurityOptions" maxReceivedMessageSize="10485760" maxBufferPoolSize="524288">
      <security mode="Message">
        <message clientCredentialType="UserName" establishSecurityContext="true" negotiateServiceCredential="true"/>
        <transport clientCredentialType="Certificate" proxyCredentialType="None"/>
      </security>
      <readerQuotas maxStringContentLength="500000"/>
    </binding>
  </wsHttpBinding>
Run Code Online (Sandbox Code Playgroud)

我的尝试(如下所示)失败,并显示错误消息"无法找到与绑定CustomBinding的端点匹配方案https的基址",但我看不出如何配置UserName消息模式安全性.

  <customBinding>
    <binding name="wsHttpSecurityOptions">
      <transactionFlow />
      <security authenticationMode="UserNameForSslNegotiated">
        <secureConversationBootstrap authenticationMode="UserNameForSslNegotiated">
          <localServiceSettings maxClockSkew="00:10:00" />
        </secureConversationBootstrap>
        <localServiceSettings maxClockSkew="00:10:00" />
      </security>
      <textMessageEncoding>
        <readerQuotas maxStringContentLength="500000"/>
      </textMessageEncoding>
      <httpsTransport maxReceivedMessageSize="10485760" maxBufferPoolSize="524288" />
    </binding>
  </customBinding>
Run Code Online (Sandbox Code Playgroud)

Kei*_*h K 16

经过一番搜索后,我找到了Yaron Naveh的一个很酷的工具,它可以进行转换,产生以下结果(我在时钟偏差中添加了)

  <customBinding>
    <binding name="wsHttpSecurityOptions">
      <transactionFlow />
      <security authenticationMode="SecureConversation" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
        <secureConversationBootstrap authenticationMode="UserNameForSslNegotiated" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
          <localServiceSettings maxClockSkew="00:10:00" />
        </secureConversationBootstrap>
        <localServiceSettings maxClockSkew="00:10:00" />
      </security>
      <textMessageEncoding />
      <httpTransport maxBufferSize="10485760" maxReceivedMessageSize="10485760" />
    </binding>
  </customBinding>
Run Code Online (Sandbox Code Playgroud)

再次感谢Yaron,我希望在找到另一个问题之前我已经找到了它,我在问了它之后50分钟自己回答了(这是我的记录:))

  • +1链接到非常酷的工具(WCF BindingBox),希望在不久的将来也支持WS-Federation相关的绑定. (2认同)