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

IIS Windows Authentication - Change User - issue with IIS 8.5

注意:以下问题仅出现在 IE 11 中,并且在 Chrome

中可以正常工作

在我们的内部网中,我们设置为对所有 Web 应用程序使用纯 windows 身份验证。该设置包括一个主页 Web 应用程序,以及从主页链接的其他几个 Web 应用程序,每个应用程序和主页都在单独的应用程序池中。我们已经使用 'Login as another user' MVC 4 Windows Authentication.

中提到的标准 401 重定向实现了 Change User 功能

当前的托管服务器是 Windows Server 2008 R2,我们正在尽职调查迁移到 Windows Server 2012 R2。

在测试期间,我们发现 更改用户 功能在主页上运行良好,但在访问任何其他应用程序时,登录用户 returns 变回原始用户登录用户。使用主页中的 _target='blank' 在新选项卡中打开链接。

托管在 Windows 2008 R2 上的同一应用程序按预期运行,更改的用户 也反映在其他 Web 应用程序上。

我在没有任何匹配经验的情况下尝试使用谷歌搜索,这是一个已知问题吗?是否有任何解决方法来解决这个问题?

示例设置和输出:

Windows 服务器 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 服务器 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

访问

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