Примечание. Указанная ниже проблема возникает только в IE 11 и отлично работает в Chrome.
В нашей интрасети мы настроены на использование исключительно Windows-аутентификации для всех наших веб-приложений. Установка состоит из веб-приложения домашней страницы и нескольких других веб-приложений, связанных с домашней страницей, каждое приложение и домашняя страница находятся в отдельных пулах приложений. Мы реализовали функцию Change User, используя стандартную переадресацию 401, как указано в 'Войти как Аутентификация Windows MVC 4 другого пользователя.
Текущий хост-сервер — Windows Server 2008 R2, и мы проводим комплексную проверку для перехода на Windows Server 2012 R2.
Во время тестирования мы обнаружили, что функция Изменить пользователя отлично работает на главной странице, но при доступе к любому другому приложению вошедший в систему пользователь возвращается к исходному вошедшему в систему пользователю. Ссылки открываются в новой вкладке с помощью _target='blank' на главной странице.
То же приложение, размещенное в Windows 2008 R2, работает должным образом, а Измененный пользователь также отображается в других веб-приложениях.
Я пробовал гуглить без какого-либо соответствующего опыта, это известная проблема и есть ли обходные пути, чтобы исправить то же самое?
Пример настройки и вывода:
Windows Server 2008 R2 (IIS 7.5)
╔═══════════╦══════════════════════╦═══════════════════════╗
║ Time-Step ║ Url-Location ║ Current-User ║
╠═══════════╬══════════════════════╬═══════════════════════╣
║ 1 ║ /HomePage ║ MyDomain\OriginalUser ║
║ 2 ║ /HomePage/ChangeUser ║ MyDomain\NewUser ║
║ 3 ║ /MyApp ║ MyDomain\NewUser ║
╚═══════════╩══════════════════════╩═══════════════════════╝
Windows Server 2012 R2 (IIS 8.5)
╔═══════════╦══════════════════════╦═══════════════════════╗
║ Time-Step ║ Url-Location ║ Current-User ║
╠═══════════╬══════════════════════╬═══════════════════════╣
║ 1 ║ /HomePage ║ MyDomain\OriginalUser ║
║ 2 ║ /HomePage/ChangeUser ║ MyDomain\NewUser ║
║ 3 ║ /MyApp ║ MyDomain\OriginalUser ║
╚═══════════╩══════════════════════╩═══════════════════════╝
Доступ к текущей информации о пользователе осуществляется с помощью User.Identity.Name