wcf - 如何将 basicHttpBinding 添加到自定义绑定代码
问题描述
我需要使用 WCF 配置文件中的证书对端点进行身份验证我尝试使用各种authenticationMode
设置添加但它不起作用customBinding
请你帮我将以下代码转换为自定义绑定
<basicHttpBinding>
<binding name="certBinding">
<security mode="Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
这是我在自定义绑定中尝试过的代码
<customBinding>
<binding name="OutbBinding1" closeTimeout="00:02:00" openTimeout="00:02:00" receiveTimeout="00:10:00" sendTimeout="00:02:00">
<textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" messageVersion="Soap11" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="20000000" maxArrayLength="20000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
<security authenticationMode="SecureConversation">
<secureConversationBootstrap authenticationMode="AnonymousForCertificate" />
</security>
</binding>
</customBinding>
解决方案
众所周知,如果我们使用 BasicHttpbinding 的消息安全性,我们应该在客户端和服务器端都设置证书。此外,我们还应该在服务器和客户端之间建立证书信任关系。
还有一点需要注意的是,与传输层安全的认证方式不同,我们需要在客户端设置一个默认的服务证书(非客户端证书,使用受信任的服务器证书来签署消息)。
因此,无论如何,下面的配置可以实现使用证书对客户端进行身份验证的相同目标。请参考以下配置。
<customBinding>
<binding name="TehRealBinding">
<textMessageEncoding />
<security authenticationMode="MutualCertificate" />
<httpTransport />
</binding>
</customBinding>
此外,以下文档可能对您有用。
https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/securitybindingelement-authentication-modes
如果有什么可以帮助您的,请随时告诉我。
推荐阅读
- python - 从 Python 中的另一个类访问变量
- xcode - xcode 项目在没有 .xcodeproj 文件的情况下打开
- google-apps-script - 由于不同的 eventId 格式,无法为在 iOS 上创建的事件加载带有 getEventByID 的日历事件
- wso2 - 如何在 wso2 API 管理器中增加输入有效负载大小
- c++ - 只有在构造函数有参数时才能访问 c++ 公共成员
- r - shinydashboard:通过 textInput 过滤 DT
- php - SQL fetch 即将出现空白页
- delphi-7 - Delphi中的广播和接收
- three.js - Aframe - 获取文本的宽度和高度
零件 - javascript - 带有 Ng-If 的 Ng-Model 不起作用(非常基本的示例)