wcf - Silverlight客户端身份不总是传递到服务器吗?

标签 wcf silverlight identity basichttpbinding

我有一个Silverlight客户端,在与通过WCF basicHttpBinding起源的服务器进行通信时遇到一些问题。服务配置如下:

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="silverlightBinding">
        <security mode="TransportCredentialOnly">
          <transport clientCredentialType="Windows" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
  <services>
    <service name="MyServices.ImportService">
      <endpoint address="" binding="basicHttpBinding"
                contract="MyServices.IImportService"
                bindingConfiguration="silverlightBinding" />
    </service>
  </services>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>


该服务器是配置为使用集成身份验证的IIS6 Web服务器。应用程序池标识是一个域帐户。

现在,从Silverlight客户端到Web服务器的一些调用包括客户端标识(访问客户端的域用户),而有些则没有!我已将IIS日志的一部分包括在内以显示此信息:

2009-12-09 14:10:00 W3SVC1490499214 10.0.0.113 GET /ClientBin/MySLApp.xap - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 304 0 0
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 2 2148074254
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 2 2148074254
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0
2009-12-09 14:12:33 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 - 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 401 1 0
2009-12-09 14:12:34 W3SVC1490499214 10.0.0.113 POST /Services/ImportService.svc - 80 BROWNIE\TestUser 10.0.0.216 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1) 200 0 0


如果向右滚动一点,您会发现对于某些请求,身份是已知的(BROWNIE\TestUser)。但是,对于大多数请求,情况并非如此。就像客户端“随机”选择何时发送身份信息一样。

有没有人见过这种行为并找到解决方案?

最佳答案

我在Silverlight应用程序中遇到了类似的行为..原来是以下问题之一:

WCF bug 1

WCF bug 2

Blog infosupport

在Windows 7中不会发生这种情况,但是在某些Windows Server版本中会发生这种情况。

关于wcf - Silverlight客户端身份不总是传递到服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1874799/

相关文章:

c# - 在 Visual Studio 设计器中为控件指定双击事件

c# - 应用程序的哪一层应该包含DTO实现

asp.net-mvc - ASP.Net MVC中的实时视频聊天+录制解决方案

c# - RequestInterceptor 和 MessageInspector 有什么区别?

c# - XAML控件使用“可见性”类型而不是普通“ bool ”的实际原因是什么?

identity - 使用刷新 token 时出现 Invalid_Grant 错误

c# - 如何从 Controller 获取身份页面 URL?

c# - 如何使用 Core 2.2 中的身份在浏览器关闭 15 分钟后保持 session 事件?

c# - WCF - 拦截消息并发送自定义响应

c# - 使用 SSL/TLS 时出现 WCF 错误