注意:以下问题仅发生在IE 11中,适用于Chrome
在我们的Intranet中,我们设置为所有Web应用程序使用纯粹的Windows身份验证。该设置包括主页Web应用程序,以及从主页链接的少数其他Web应用程序,每个应用程序和主页都位于单独的应用程序池中。我们已使用'Login as another user' MVC 4 Windows Authentication中提到的标准401重定向实施了更改用户功能。
当前的托管服务器是Windows Server 2008 R2,我们正在尽职尽责迁移到Windows Server 2012 R2。
在测试期间,我们发现更改用户功能在主页上正常工作,但在访问任何其他应用时,登录用户将返回原始登录用户。使用_target ='空白'在新标签页中打开链接。来自主页。
Windows 2008 R2上托管的相同应用程序按预期运行,已更改用户也会反映在其他Web应用程序上。
我尝试使用谷歌搜索没有任何匹配的经验,这是一个已知的问题,是否有任何解决方法来修复它?
示例设置和输出:
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 ║
╚═══════════╩══════════════════════╩═══════════════════════╝
访问当前用户信息
答案 0 :(得分:0)
解决:Windows身份验证中提供程序的顺序很重要。一旦我们将NTLM移到提供者列表中的Negotiate之上,问题就解决了。