我们有一个ClickOnce WPF应用程序,它通过WCF与服务进行通信。
去年某个时候,客户端在最初未经授权的尝试后正确使用身份验证与服务进行通信:
2012-09-20 18:19:08 {ip address} POST /MyService/MyService.svc - 80 - {other ip address} - 401 2 5 0
2012-09-20 18:19:10 {ip address} POST /MyService/MyService.svc - 80 DOMAIN\USERNAME {other ip address} - 200 0 0 2279
然而,最近它不再试图验证自己:
2013-02-08 11:27:09 {ip address} POST /MyService/MyService.svc - 80 - {other ip address} - 401 2 5 1
2013-02-08 11:27:09 {ip address} POST /MyService/MyService.svc - 80 - {other ip address} - 401 1 2148074254 202
据我所知,配置在此期间没有改变。
WPF客户端应用程序的配置设置为:
<basicHttpBinding>
<binding name="BasicHttpBinding_IShipRecService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="01:00:00" sendTimeout="00:00:15"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
和服务器:
<basicHttpBinding>
<binding name="basicBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
所以这里有一些奇怪的事情:
这些配置上的安全模式不匹配。但是,它们应该:客户端/ Web应用程序的实时实例 使用此设置。此外,调整web.config以匹配不能解决此问题。
我们还有一个Web应用程序,其配置与WPF客户端应用程序相同。这可以与服务进行通信。我在这里看到的唯一区别是它们在同一个盒子里。
在IIS 7.5中,对服务禁用了匿名身份验证,并启用了Windows身份验证。
有什么想法阻止客户端应用程序尝试Windows身份验证?或者我如何进一步调查它?