无法使用基于TLS的基本身份验证连接到非wcf客户端的wcf服务器

时间:2015-10-24 16:59:18

标签: c# wcf iis

在建立安全连接之后,我遇到了与非WCF客户端有关的问题,并且请求的URL字符串被传递到服务器。我得到了403禁止的错误,而不是获得401挑战。我有一个适用于WsHTTPBindingBasicHTTPBinding的WCF客户端。在测试WCF客户端之后,我可以通过在调用CertificateName之前用以下代码行中的空字符串替换serviceProxy.CheckIn()来使基本身份验证失败:

PermissiveCertificatePolicy.Enact(string.Format("CN={0}", CertificateName)); 

我猜这是强制客户端接受服务器证书的覆盖,或者它以某种方式将其名称传递给服务器以进行身份​​验证。

所以我的问题是WCF客户端在请求期间是否将证书名称传递给服务器?如果是这样,我应该在请求字符串中的哪个位置放置它?那会是什么样子?

web.config 文件绑定:

<wsHttpBinding>
    <binding name="HIBridge_SSLBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
        <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Certificate" proxyCredentialType="None" realm=""/>
            <message clientCredentialType="UserName" negotiateServiceCredential="True" establishSecurityContext="True"/>
        </security>
    </binding>
</wsHttpBinding>
<basicHttpBinding>
    <binding name="HIBridge_BasicBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
        <security mode="TransportWithMessageCredential">
            <transport clientCredentialType="Basic" proxyCredentialType="None" realm=""/>
        </security>
        <readerQuotas maxStringContentLength="2147483647"/>
    </binding>
</basicHttpBinding>

0 个答案:

没有答案