「セッション」を使用している IIS でホストされている WCF サービスを使用するクライアント Windows サービスの HTTP 要求ヘッダーに配置された認証 Cookie を取得する際に問題があります。クライアント アプリは、フォーム認証を使用して WCF サービスにアクセスします。認証が成功した後、.ASPXAUTH の Set-Cookie と ASP.NET_SessionId の Set-Cookie を含む HTTP 応答ヘッダーをキャプチャします。これらの Cookie を、WCF サービスに対する後続のすべての要求の HTTP 要求ヘッダーに追加します。Fiddler デバッグ ツールを使用すると、WCF サービスへのすべての要求に対して、2 つの HTTP 要求が送信されることがわかります。最初の HTTP リクエスト ヘッダーには Cookie が含まれていませんが、2 番目の HTTP リクエストには含まれています。web.config の Authorization セクションを「deny users=”?”」に設定してサービスを保護すると、ヘッダーに Cookie が含まれていない最初の HTTP リクエストは、サービスへのアクセスを防止するログインへの「リダイレクト」を強制します。「セッション」の使用に関連していると思われる最初のリクエスト。WCF サービスで「セッション」を無効にすると、WCF 呼び出しごとに 1 つの HTTP 要求しか取得できず、Cookie がヘッダーにあります。WCF サービスに送信されたすべての HTTP 要求ヘッダーで認証から返された Cookie を取得するにはどうすればよいですか? この問題に関するヘルプをいただければ幸いです。WCF サービスに送信されたすべての HTTP 要求ヘッダーで認証から返された Cookie を取得するにはどうすればよいですか? この問題に関するヘルプをいただければ幸いです。WCF サービスに送信されたすべての HTTP 要求ヘッダーで認証から返された Cookie を取得するにはどうすればよいですか? この問題に関するヘルプをいただければ幸いです。
クライアントからのバインディングを含めました。
<customBinding>
<binding name="CustomBinding_IMySyncService" receiveTimeout="00:01:00"
sendTimeout="00:01:00">
<reliableSession acknowledgementInterval="00:00:30"
inactivityTimeout="00:03:00"
maxTransferWindowSize="4096" />
<binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binaryMessageEncoding>
<httpsTransport manualAddressing="false" maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="2147483647" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" />
</binding>
<binding name="CustomBinding_AuthenticationService">
<binaryMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binaryMessageEncoding>
<httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous"
bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" />
</binding>
</customBinding>