使用 IIS 和 Windows 身份验证时,什么会导致用户名不正确?

问题描述 投票:0回答:3

我当前在使用 Windows Server 2012 和 IIS 上托管的 ASP.NET 4.8 Web API 应用程序时遇到了一些用户的问题。以下属性不会返回该用户的正确用户名,而是返回用于该服务器的服务帐户的名称:

  • HttpContext.Current.User.Identity.Name
    
    
  • HttpContext.Current.Request.LogonUserIdentity.Name
    
    
我不知道如何开始解决此问题 - 我自己和大多数其他用户都没有遇到此问题,但对于少数用户,上述内容不会返回正确的用户名,而是返回用于远程连接到的服务帐户的用户名有问题的服务器。通过浏览器专用窗口强制登录确实可以解决该问题,并且应用程序可以正确返回上述每个属性的预期用户名。

Windows 身份验证未返回正确用户名的原因可能是什么?解决此类问题的最佳方法是什么?

编辑:我能够解决问题,请参阅下面我的答案

asp.net windows authentication iis
3个回答
3
投票
经过一些额外的研究和故障排除后,我确定遇到上述问题的用户将有问题的服务帐户存储在 Windows 凭据管理器中:

删除有问题的服务帐户允许他们使用正常的 Windows 域\用户名通过 Intranet 站点进行身份验证。正如@pcalkins 所建议的,在某些时候,受影响的用户在他们的计算机上使用了这些凭据,并且 Chrome、Edge、IE 在通过 Intranet 站点进行身份验证时使用了保存的凭据。


1
投票
请检查以下步骤:

  1. 确保网站已启用 Windows 身份验证并禁用匿名身份验证。

  2. 在 Interner Explorer 中启用集成安全性(选项/高级并选中“启用集成 Windows 身份验证”选项)。

  3. 将您的网站添加到本地 Intranet 区域,并在选项/安全设置/本地 Intranet/自定义级别下至少选择“仅在 Intranet 区域自动登录”选项。

  4. 确保用户和应用服务器在同一个域中。


-1
投票
@mfcallahan,您是否收到 Microsoft 关于此问题的任何回复?我们也面临着同样的问题。无效身份正在获取。

© www.soinside.com 2019 - 2024. All rights reserved.