使用Silverlight自定义绑定的Windows身份验证

时间:2010-05-16 23:12:30

标签: wcf silverlight binding

我正在尝试在web.config文件中为IIS中托管的WCF服务设置安全性,但不断收到错误消息:

  

此服务的安全设置   需要'匿名'身份验证但是   它没有启用IIS   承载此服务的应用程序。

我读过Nicholas Allen的博客(link text),看来这是我需要采取的路线。但是,我在我的Silverlight服务的customBinding中使用“binaryMessageEncoding”,因此,我不确定如何将这种类型的安全性应用于这样的元素。这就是我的自定义绑定目前在配置中的样子:

<customBinding>             
  <binding name="silverlightBinaryBinding">          
    <binaryMessageEncoding />
    <httpTransport />
  </binding>
</customBinding>

有没有人有过使用binaryMessageEncoding获取Windows身份验证以使用自定义绑定的经验?

3 个答案:

答案 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"/>

也适用于此问题。