Выполните вызов WCF. Net Ядро с пользовательской привязкой (authenticationMode = "MutualCertificate") - PullRequest
0 голосов
/ 27 марта 2020

В настоящее время мы сталкиваемся с некоторыми проблемами при вызове службы WCF в. net core (2.1).

Поскольку. net core не поддерживает привязку System.Servicemodel в web.config мы пытаемся создать эту пользовательскую привязку программным способом.

(Это хорошо объяснено в этом вопросе stackoverflow: Как программно создать эту пользовательскую привязку? )

Наш пользовательский привязка выглядит следующим образом:

<bindings>
  <customBinding>
    <binding name="customBinding">
      <security enableUnsecuredResponse="true" authenticationMode="MutualCertificate"
        messageSecurityVersion="WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10" />
      <textMessageEncoding messageVersion="Soap11" />
      <httpsTransport maxReceivedMessageSize="2097152" requireClientCertificate="true" />
    </binding>
  </customBinding>
</bindings>

Как мы можем добиться этого в коде?

In. net framework 4.7.x была возможность создать эту привязку следующим образом:

CustomBinding binding = new CustomBinding();
SecurityBindingElement sbe = SecurityBindingElement.CreateMutualCertificateBindingElement();

Но в. net core 2.1 ее там нет. Как мы можем достичь этого?

Или как мы можем сделать вызов WCF в ядре. net с помощью этой пользовательской привязки. С наилучшими пожеланиями и большое спасибо за помощь нам!

1 Ответ

0 голосов
/ 31 марта 2020

Безопасность сообщений SOAP не реализована в клиенте WCF на основе DotNet Core. Поэтому AsymmetricSecurityBindingElement не может быть создан в платформе Core.
https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.channels.securitybindingelement.createmutualcertificatebindingelement?view=netframework-4.8
https://github.com/dotnet/wcf/issues/2766
Не стесняйтесь сообщить мне, если есть все, что я могу помочь.

...