WCF を介してサービスと通信する ClickOnce WPF アプリケーションがあります。
昨年のある時点で、クライアントは最初の不正な試みの後、サービスとの通信に認証を正しく使用していました。
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 を調整しても、この問題は解決されません。
WPF クライアント アプリケーションと同じ構成を持つ Web アプリケーションもあります。これにより、サービスと通信できます。ここでわかる唯一の違いは、それらが同じボックスにあることです。
IIS 7.5 では、サービスの匿名認証が無効になり、Windows 認証が有効になります。
クライアント アプリケーションが Windows 認証を試みるのを妨げているものについて何か考えはありますか? または、どうすればさらに調査できますか?