IIS Windows身份验证 - 更改用户 - IIS 8.5的问题

时间:2017-10-17 04:55:57

标签: asp.net iis-7.5 windows-authentication iis-8.5

注意:以下问题仅发生在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 ║
╚═══════════╩══════════════════════╩═══════════════════════╝

使用User.Identity.Name

访问当前用户信息

1 个答案:

答案 0 :(得分:0)

解决:Windows身份验证中提供程序的顺序很重要。一旦我们将NTLM移到提供者列表中的Negotiate之上,问题就解决了。