既定では、マシン キーの設定は自動生成で、アプリケーションごと (AutoGenerate、IsolateApps) です。MSDN は、復号化キーと検証キーは Web アプリケーション ID に基づいていると述べています。IIS 7 サーバーで 2 つの ASP.NET MVC 2 サイトをホストしていますが、マシン キーが同じであることがわかりました。これを確認するには、リフレクションを使用して ValidationKeyInternal および DecryptionKeyInternal プロパティを確認しました。また、一方のサイトで偽造防止トークン Cookie を生成してテストし、それをもう一方のサイトに渡すと、Cookie を読み取ることができます。
試行錯誤の結果、アプリケーション プール ID が変更されるとキーが変更されることがわかりました。2 つのサイトは、ネットワーク サービス資格情報で実行されているため、同じキーを持っています。1 つのサイトのアプリケーション プール ID を変更すると、異なる検証/暗号化キーが使用されるようになります。
ただし、2 つのサイトを別のサーバーに展開した後は、アプリケーション プール ID を変更した後でも、常に同じマシン キーを取得します。2 台のサーバーのハードウェアとソフトウェアの構成は同じです。
AutoGenerate,IsolateApps 設定でマシン キーがどのように生成されるかの実際のロジックの参照があるかどうかを知りたいです。Web では、Web ファームのシナリオで同じマシン キーを設定することについて話している記事がたくさんあります。しかし、反対側で問題が発生しました。Web アプリケーションごとの自動キー生成が正しく機能していないようです。以前に同じ問題を抱えている人はいますか?