私は、多くの古い ASP および ASP .NET アプリケーションを含む、さまざまな潜在的なプラットフォームにアクセスできる必要がある Web サービスを構築しています。いくつかの調査の後、REST (webHttpBinding) と SOAP (wsHttpBinding) エンドポイントの両方を備えた WCF サービスに落ち着きました (そうすれば、幅広いプラットフォームをサポートしながら、.NET コーダーを満足させることができます)。
セキュリティのために、ユーザー名/パスワードの独自のデータベースに対して SSL および HTTP Authentication Basic を使用しています。そこで、ユーザー名とパスワードを処理し、SSL をチェックする HttpModule を作成しました。現在、REST セットアップは完全に機能していますが、SOAP エンドポイントに問題があります。どのような設定を使用しても、認証に使用できる WWW-Authorization ヘッダーが SOAP クライアントから送信されることはありません。次のような設定を<message clientCredentialType="UserName" />
行うと、WCF に Authorization ヘッダーが必要であることを伝え、Web 参照を作成するときにその情報が Visual Studio (または任意のクライアント) によって取得されると想定しています。おそらく私はどうしようもなくナイーブなだけなのだろう。
質問を要約すると、SOAP メッセージと共に WWW-Authorization ヘッダー (つまり、HTTP 基本ヘッダー) を送信するように WCF に指示する方法はありますか?