gpt4 book ai didi

wcf - webHttpBinding 安全不包含消息节点?

转载 作者:行者123 更新时间:2023-12-05 00:34:57 25 4
gpt4 key购买 nike

我正在尝试将客户端证书应用于 WCF REST 服务。我发现了一些有关应用具有以下内容的客户端证书的详细信息:

<bindings>
<wsHttpBinding>
<binding name="wsHttpEndpointBinding">
<security>
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
</bindings>

在这种情况下,似乎没有问题。然而,我正在使用 webHttpBinding 并且我收到一条错误消息,指出 messagesecurity 的无效 child 节点。

我是否会不正确地设置客户端证书?谁能指出我正确的方向。

最佳答案

wsHttpBinding 配置中的消息节点是关于配置 SOAP 消息安全头的,这就是为什么它对 webHttpBinding 无效,它不是基于 SOAP(它是 REST)

REST 服务的适当安全性很可能是传输级别 - 即 HTTPS。

如果要使用消息级安全性,则需要切换到 SOAP,但消息级是相当专业的,在大多数情况下不是必需的。

如果您需要为 webHttpBinding 使用证书(这意味着使用相互 SSL),您需要将 securityMode 设置为 Transport 并将 clientCredentialType 属性设置为 Certificate。在配置中,它在服务器端看起来像这样

  <webHttpBinding>
<binding name="ClientCertServerSide">
<security mode="Transport" >
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</webHttpBinding>

在客户端,您可以在代码(使用 HttpWebRequest.ClientCertificates 属性)或配置中指定证书。在配置中它看起来像
    <endpointBehaviors>
<behavior name="ClientCertClientSide">
<clientCredentials>
<clientCertificate findValue="put the cert name here" storeLocation="put the store here" />
</clientCredentials>
</behavior>
</endpointBehaviors>

关于wcf - webHttpBinding 安全不包含消息节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com