次のプロジェクト/コード構造があります。
- ProjectA は、ASP.NET メンバーシップ プロバイダーでフォーム認証を使用してユーザーを認証する MVC3 プロジェクトです。現在、メンバーシップとロールの構成のみを使用しており、プロファイルは使用していません。これを構成するための関連する web.config セクションがあります。
- ProjectB は、同じ認証メカニズムを利用する WCF サービスであり、次のようにします。
- ProjectA と同じ loginUrl 属性
- フォーム タグの名前属性は、両方のプロジェクトで「.ASPXFORMSAUTH」に設定されています。
- system.web の下の machineKey 要素は、両方のプロジェクトで同じ値に設定されています
- 注: ProjectB の web.config には、ASP.NET メンバーシップ構成要素が含まれていません。
ProjectA のコードが ProjectB の WCF を呼び出すと、WCF サービスが正しく認証されるように、呼び出しのヘッダーで Cookie の詳細が渡されます。(私が最初にコーディングしていたときのここでの以前の質問で詳細に説明されているように-フォーム認証を使用するMVC3アプリケーションは、他のソリューションでWCFを消費します)。
このアプローチは、上記のように、社内の開発サーバーとテスト サーバーでうまく機能しています。
ただし、クライアント インストール (同じサーバー セットアップ - IIS 7.5 を使用するサーバー 2008) では、ASP.NET メンバーシップ構成要素を ProjectB (WCF サービス) の web.config に追加する必要がある場合にのみ機能します。そうしないと、ProjectB は machine.config から既定の (サンプル) ASP.NET メンバーシップ構成要素を取得し、存在しない接続文字列について不平を言います (それらはそこにあるサンプルのみであるため)。 )。machine.configs には、社内の開発サーバーとテスト サーバーで同じエントリがありますが、同じ問題は見られません。
これを以前に見たことがあり、ProjectB が machine.config のエントリを探すのを止める方法を知っている人はいますか?
ありがとう