使用自定义绑定在 .Net Core 中执行 WCF 调用(身份验证模式 = "MutualCertificate")



当前我们在.net core(2.1(.中调用WCF服务时遇到一些问题

由于.net核心不支持web.config中的System.Servicemodel绑定,我们正尝试以编程方式创建此自定义绑定。

(这个stackoverflow问题很好地解释了这一点:我如何通过编程创建这个自定义绑定?(

我们的自定义绑定如下所示:

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

我们如何在代码中实现这一点?

在.net框架4.7.x中,可以选择以这种方式创建此绑定:

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

但在.net核心2.1中,它并不存在。我们如何才能做到这一点?

或者我们如何用这个自定义绑定在.net核心中进行WCF调用。衷心问候并感谢您的帮助!

SOAP消息安全性未在基于DotNet Core的WCF客户端中实现。因此,无法在Core框架中创建AsymmetricSecurityBindingElement
https://learn.microsoft.com/en-us/dotnet/api/system.servicemodel.channels.securitybindingelement.createmutualcertificatebindingelement?view=netframework-4.8
https://github.com/dotnet/wcf/issues/2766
如果有什么我可以帮忙的,请随时告诉我。