このような構造の ASP.NET システムがあり、同じサーバーで .Net 1.1 と .Net 2.0 の両方のアプリをホストしています。
/apps11/app1
/apps11/app2
/apps11/web.config
/apps20/app3
/apps20/app4
/apps20/web.config
上記の 2 つの web.config ファイルには、それぞれのバージョンの .Net に固有のセクションがありますが、フォーム認証とマシン キーに関連する部分は同一でした (異なるバージョンのアプリ間でフォーム認証 Cookie を共有できるようにするため)。セクションを以下に示します (実際のキーは難読化されていますが、正確な長さと設定は保持されています)。
<machineKey
validationKey="AAAABBBBCCCCDDDDEEEEFFFF0000111122223333"
decryptionKey="BBBB9999AAAA1111"
validation="SHA1">
</machineKey>
<authentication mode="Forms">
<forms name=".ASPXAUTH" protection="All" timeout="15" path="/" loginUrl="/apps20/login.aspx"></forms>
</authentication>
アプリのログイン ページ コンポーネントのアップグレード後、1.1 アプリで共有認証が機能しなくなりました。2.0 アプリにはログインできましたが、1.1 アプリに移動すると、ログイン ページに何度もリダイレクトされました。次のトラブルシューティング手順を実行しました。
- MS10-070に問題があり、KB243375 パッチが必要ですか? すでにサーバーに適用されていました。
- インストーラーによってマシンキーが壊れましたか? machinekey の値を確認したところ、インストーラーによって validationKey と encryptionKey の値が更新されていました。ただし、設定は同じままで (validation="SHA1")、同じマシンキーが両方の web.config ファイルにありました。
- 各 .Net Framework バージョンの machine.config または web.config に他の値がありますか? .Net 2.0 web.config にドメイン設定が見つかりましたが、それはチケット Cookie のドメインにのみ影響し、その内容には影響しないようです。
- 「ASP.NET V1.1 および ASP.NET V2.0 アプリケーション間で認証 Cookie を共有する方法」で説明されているように、1.1 と 2.0 の間の暗号化設定に問題がありますか? キー値以外は何も変更されていないのに、なぜ今壊れるのでしょうか?