.NetFramework 2 (IIS 7.5 の App Pool 2 Classic を使用) に ASP.NET サイトがあり、 と の混合認証を使用しBasic Authenticate
ますForm Authenticate
。
IIS の構成は次のとおりです。
そして、匿名認証の特定のユーザーに次の名前を付けますGuest
。
Admin
ユーザーが偽装を使用するような別のユーザー名でログインする場合:
string Token = GetSpecificTokenOfCurrentUser();
System.Security.Principal.WindowsIdentity WinUser = (WindowsIdentity) HttpContext.Current.Application["User_"+Token];
WinUser.Impersonate();
したがって、Web サイトを .NetFramework 4 にアップグレードし、.NET 4 の多くの機能を Web サイトに追加するまで、すべてが完璧であり、新しい問題があることがわかりました。
Admin
問題は、新しいタブですばやく開くなど、いくつかのページ (3-4) を同時に開いて、場合によっては偽装されていないユーザーでログインすることです。正しく偽装された最初のページと同様にAdmin
、別のページは偽装されておらず、まだGuest
ユーザーがいます。
これは非常に奇妙です。認証部分に変更はありません。変更点は、.NetFrameWork 4 にアップグレードすることであり、アプリケーション プールは .NetFrameWork 4 - Classic です。
.Net 2 バージョンの Web サイトでテストがあります。すべて問題ありませんが、App Pool を .NetFrameWork 4 に変更すると、問題が表示されました。
問題は、.NetFramework 4 アプリ プールで偽装するためにどのような変更が行われたかということです。
見逃したことはありますか?なにか提案を?