1

この wcf 基本バインディングをカスタム バインディングに変換する方法は??

      <basicHttpBinding>
    <binding name="BasicHttpBinding_IAutenticacion" closeTimeout="00:01:00"
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
      messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
      useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="Certificate" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>

よろしくお願いします!

4

1 に答える 1

2

オンラインの wcf バインディング コンバーターをチェックしてください http://webservices20.blogspot.co.il/2009/08/bindingbox-convert-wcf-bindings.html

編集:このサービスを使用するときは、(デフォルトのサンプルのように) の前にタグを付けることを忘れないでください。結果は次のようになります。

<!-- generated via Yaron Naveh's http://webservices20.blogspot.com/ -->

<customBinding>
  <binding name="NewBinding0">
    <security authenticationMode="CertificateOverTransport" messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" requireDerivedKeys="false" securityHeaderLayout="Lax" />
    <textMessageEncoding MessageVersion="Soap11" />
    <httpsTransport />
  </binding>
</customBinding>

<!-- generated via Yaron Naveh's http://webservices20.blogspot.com/ -->

編集:これは、コードからこのバインディングを作成する方法です:

        var b = new CustomBinding();
        var s = SecurityBindingElement.CreateCertificateOverTransportBindingElement(
            MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10);
        s.SetKeyDerivation(false);
        s.SecurityHeaderLayout = SecurityHeaderLayout.Lax;

        b.Elements.Add(s);
        b.Elements.Add(new TextMessageEncodingBindingElement() {  MessageVersion = MessageVersion.Soap11});
        b.Elements.Add(new HttpsTransportBindingElement());

クライアントを作成するときに、次のように証明書を設定できます。

c.ClientCredentials.ClientCertificate.Certificate
于 2012-07-01T21:38:32.767 に答える