abl*_*000 4 authentication wcf ntlm nettcpbinding
我知道如何为NTLM身份验证配置basicHttpBinding,但无法找到为netTcpBinding执行相同操作的方法.
netTcpBinding是否支持NTLM?如果是这样,如何强制WCF服务使用NTLM?
BTW由于某种原因使用身份元素的众所周知的方法根本不起作用.我正在寻找类似的东西 - clientCredentialType ="Ntlm"但是对于tcp.这是basicHttp设置:
<basicHttpBinding>
<binding name="BasicHttpBinding">
<security mode ="TransportCredentialOnly">
<transport clientCredentialType ="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
Run Code Online (Sandbox Code Playgroud)
这是我最终找到,测试和确认的综合答案.
答:我的WCF客户端用于动态构建EndPoint.Address,如下所示
EndPointAddress myEdpintAddress = new EndPointAddress(stringURL);
Run Code Online (Sandbox Code Playgroud)
但是在安全传输(net.tcp)的情况下,它必须初始化如下
EndPointAddress myEdpintAddress = new EndPointAddress(new UrRL(string), myEndPointIdentity
)
如果没有EndPointIdentity参数,EndPointAddress对象中的Identity属性为null,并在服务器端生成"...目标主体名称不正确..."错误.
B.我们的域控制器支持Kerberos和Ntlm身份验证.完成上述操作后,如果安全性不是"None",则客户端通常有四种配置方案用于net.tcp绑定,并且WCF服务作为域帐户运行:
<identity>
指定的客户端端点中没有元素 - WCF调用失败
<identity>
提供的元素,但是dns,userPrioncipalName或servicePrincipalName元素的空值 - WCF调用成功,但使用Ntlm身份验证
<identity>
元素为dsn或SPN提供了一个值 - WCF调用成功; 服务使用Ntlm进行身份验证.
<identity>
element为upn提供了正确的值 - WCF调用成功; 服务使用Kerberos进行身份验证.upn触发器Ntlm身份验证的值不正确或缺失
谢谢.
Net TCP 绑定不支持“NTLM”作为客户端凭据类型 - 您可以选择None
或Windows
仅Certificate
(请参阅TcpClientCredentialType 上的 MSDN 文档)。
因此,对于您的情况,请尝试以下操作:
<netTcpBinding>
<binding name="tcpWindows">
<security mode ="TransportCredentialOnly">
<transport clientCredentialType ="Windows"/>
</security>
</binding>
</netTcpBinding>
Run Code Online (Sandbox Code Playgroud)
这不起作用的任何原因?
归档时间: |
|
查看次数: |
5671 次 |
最近记录: |