У нас есть сайт ASP.NET в .NetFramework 2 (с App Pool 2 Classic в IIS 7.5). Мы используем смешанную аутентификацию с Basic Authenticate
и Form Authenticate
.
Конфигурация в IIS:
И укажите конкретного пользователя в анонимной аутентификации с именем: Guest
.
Когда пользователь входит в систему с другим именем пользователя, например Admin
, мы используем олицетворение:
string Token = GetSpecificTokenOfCurrentUser();
System.Security.Principal.WindowsIdentity WinUser = (WindowsIdentity) HttpContext.Current.Application["User_"+Token];
WinUser.Impersonate();
Так что все будет идеально, пока мы не обновим веб-сайт до .NetFramework 4 и не добавим на веб-сайт множество функций .NET 4, и мы решили, что у нас есть новая проблема.
Проблема заключается в том, что пользователь входит в систему с помощью Admin
и одновременно открывает несколько страниц (3-4), например, быстро открываемый в новой вкладке, в некоторых случаях Пользователь не олицетворяется. Например, первая страница правильно олицетворяется для Admin
, но другие страницы не олицетворяются и все еще имеют Guest
пользователя.
Это так странно, у нас нет никаких изменений в части аутентификации. изменения заключаются в том, что мы обновляемся до .NetFrameWork 4, а пул приложений - .NetFrameWork 4 - Classic.
У нас есть тест в версии сайта .Net 2. все в порядке, но мы изменили пул приложений на .NetFrameWork 4, и проблема была показана.
Итак, вопрос в том, какие изменения произошли в пуле приложений .NetFramework 4 для олицетворения?
Что мы упустили? любое предложение?