2011-07-21 10 views
5

デフォルトでは、マシンキーの設定は自動生成でアプリケーションごとに(AutoGenerate、IsolateApps)行われます。 MSDNには、復号化キーと検証キーがWebアプリケーションIDに基づいていることが記載されています。私はIIS 7サーバー上に2つのASP.NET MVC 2サイトをホストしていますが、マシンキーが同じであることがわかりました。リフレクションを使用してValidationKeyInternalプロパティとDecryptionKeyInternalプロパティを確認することでこれを検証しました。私はまた、あるサイトで反偽造トークンクッキーを生成し、それを他のサイトに渡してクッキーを読むことによってそれをテストしました。ASP.NETでの自動マシンキーの生成

試行錯誤の末、アプリケーションプールIDが変更された場合、キーが変更されることがわかりました。 2つのサイトは、ネットワークサービスの資格情報のもとで実行されているため、同じキーを持っています。あるサイトのアプリケーションプールIDを変更すると、さまざまな検証/暗号化キーが開始されます。

ただし、2つのサイトを別のサーバーに展開した後も、アプリケーションプールのIDを変更しても、常に同じマシンキーが取得されます。 2台のサーバーは同じハードウェアとソフトウェア構成を持っています。

AutoGenerate、IsolateAppsの設定でマシンキーがどのように生成されるかについての実際のロジックが参照されているかどうかを知りたいと思います。ウェブ上には、ウェブファームのシナリオで同じマシンキーを設定することについて話す記事がたくさんあります。しかし、私は反対側で問題に遭遇しました。 Webアプリケーションごとの自動キー生成が正しく機能していないようです。前に同じ問題を抱えている人はいますか?

+0

あなたの説明は非定型です。私の経験では広告されたように働いています。私は2つのアプリを共有するフォームの認証チケットを同じアプリケーションプールで実行している。同じようにmachinkeyを設定しない限り、チケットを共有することはできません。 –

+0

私は問題が発生するまでこれがうまくいかないとは思わなかった。痛みは、私は2つのサーバーで何が起こったの説明を見つける必要があります。 – intangible02

答えて

0

IIS設定を上書きしているweb.config設定がありますか。これは、特定のキーを使用するようにサーバーに指示している場合と同様に、この点で重要な要素になります。

+0

IIS管理コンソールを使用して設定を変更すると、変更はweb.configに保持されます。彼らは一貫しています。また、IIS管理コンソールに表示されているのは、設定ファイルhieharchyの統合結果に基づいています。ちなみに、私はIISとVisual Studio開発Webサーバーの両方でプロジェクトをホストしてテストを行いました。 – intangible02

関連する問題