我正在尝试在web.config文件中为IIS中托管的WCF服务设置安全性,但不断收到错误消息:
此服务的安全设置 需要'匿名'身份验证但是 它没有启用IIS 承载此服务的应用程序。
我读过Nicholas Allen的博客(link text),看来这是我需要采取的路线。但是,我在我的Silverlight服务的customBinding中使用“binaryMessageEncoding”,因此,我不确定如何将这种类型的安全性应用于这样的元素。这就是我的自定义绑定目前在配置中的样子:
<customBinding>
<binding name="silverlightBinaryBinding">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding>
有没有人有过使用binaryMessageEncoding获取Windows身份验证以使用自定义绑定的经验?
答案 0 :(得分:3)
<httpTransport authenticationScheme="Negotiate"/>
适合我。
确保对mex端点使用相同的绑定:
<bindings>
<customBinding>
<binding name="myCustomBinding">
<binaryMessageEncoding maxSessionSize="2147483647">
<readerQuotas maxDepth="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
</binaryMessageEncoding>
<httpTransport maxReceivedMessageSize="4194304" authenticationScheme="Negotiate"/>
</binding>
</customBinding>
</bindings>
<services>
<service name="Service">
<endpoint address="" binding="customBinding" bindingConfiguration="myCustomBinding" contract="IService" />
<endpoint address="mex" binding="customBinding" bindingConfiguration="myCustomBinding" contract="IMetadataExchange" />
</service>
</services>
答案 1 :(得分:0)
我也遇到了同样的问题,我通过在终点配置中进行以下更改来修复它
<httpTransport authenticationScheme="Ntlm"/>
并删除mex端点
答案 2 :(得分:0)
的选项
<httpTransport authenticationScheme="IntegratedWindowsAuthentication"/>
也适用于此问题。