银光4号及;WCF:Windows身份验证不断出现

银光4号及;WCF:Windows身份验证不断出现,wcf,silverlight-4.0,iis-7,windows-authentication,Wcf,Silverlight 4.0,Iis 7,Windows Authentication,我们已经开发了带有WCF服务的SL4应用程序。SL应用程序和服务托管在IIS 7中,启用了windows身份验证,禁用了所有其他功能。 在wwroot中,我有以下客户端访问策略文件: <?xml version="1.0" encoding="utf-8"?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*">

我们已经开发了带有WCF服务的SL4应用程序。SL应用程序和服务托管在IIS 7中,启用了windows身份验证,禁用了所有其他功能。 在wwroot中,我有以下客户端访问策略文件:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
 <cross-domain-access>
<policy>
  <allow-from http-request-headers="*">
    <domain uri="*"/>
  </allow-from>
  <grant-to>
    <resource path="/" include-subpaths="true"/>
  </grant-to>
</policy>

这个跨域文件:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
 <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

silverlight xap的服务配置在客户端部分中如下所示:

 <binding name="SilverlightEndpoint" maxBufferSize="2147483647"
        maxReceivedMessageSize="2147483647">
      <security mode="TransportCredentialOnly" />
    </binding>
    ....
    <client>
  <endpoint address="http://app.domain.intern/MyService/MyService.svc"
      binding="basicHttpBinding" bindingConfiguration="SilverlightEndpoint"
      contract="[interface]" name="SilverlightEndpoint" />
     </client>

....
现在,当我在internet explorer中打开应用程序时,它会提示我输入windows登录凭据,然后一切正常。在我的开发环境中,集成身份验证工作顺利,在访问我的应用程序之前,我不必输入凭据。事实上,当我在客户端配置中有以下端点地址时,集成身份验证也可以在生产环境中工作:“http://[servername]/MyService/MyService.svc”。
有人知道我怎样才能恢复集成身份验证吗?

最后,我找到了答案。 您真的不必更改客户端配置中的任何内容。我只是保留了端点地址“http://[servername]/MyService/MyService.svc”,并忽略了DNS别名。
问题在于浏览器安全设置。在InternetExplorer8中,我必须手动将dns别名添加到本地INTRANET区域中的受信任站点(这很重要)。然后一切正常,无论我使用服务器名还是dns别名访问应用程序,身份验证弹出窗口都消失了。

非常感谢!我花了几个小时试图解决这个问题。在Chrome中,我从未被提示输入登录凭据。在IE中访问silverlight页面后,系统提示我输入登录凭据。在将我的服务器别名添加到本地intranet区域后,该站点开始在Chrome中工作。好极了