Asp.net 使用IIS时,什么会导致用户名不正确&;Windows身份验证?

Asp.net 使用IIS时,什么会导致用户名不正确&;Windows身份验证?,asp.net,windows,authentication,iis,Asp.net,Windows,Authentication,Iis,我当前遇到一个问题,一些用户使用的ASP.NET 4.8 Web API应用程序托管在Windows Server 2012和IIS上。以下属性不会返回该用户的正确用户名,而是返回用于此服务器的服务帐户的名称: HttpContext.Current.User.Identity.Name HttpContext.Current.Request.LogonUserIdentity.Name 我不知道如何对此进行故障排除-我自己和大多数其他用户都没有遇到此问题,但对于少数用户,上面的操作没有返回

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

  • HttpContext.Current.User.Identity.Name
  • HttpContext.Current.Request.LogonUserIdentity.Name
我不知道如何对此进行故障排除-我自己和大多数其他用户都没有遇到此问题,但对于少数用户,上面的操作没有返回正确的用户名,即返回用于远程连接到相关服务器的服务帐户的用户名。通过浏览器专用窗口强制登录确实可以纠正此问题,并且应用程序会正确返回上述每个属性的预期用户名

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


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

请检查以下步骤:

  • 确保网站的windows身份验证处于启用状态,而匿名身份验证处于禁用状态

  • 在Interner Explorer中启用集成安全性(选项/Advanced,并签入“启用集成Windows身份验证”选项)

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

  • a确保用户和应用程序服务器位于同一域中


  • 请检查以下步骤:

  • 确保网站的windows身份验证处于启用状态,而匿名身份验证处于禁用状态

  • 在Interner Explorer中启用集成安全性(选项/Advanced,并签入“启用集成Windows身份验证”选项)

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

  • a确保用户和应用程序服务器位于同一域中


  • 经过一些额外的研究和故障排除,我确定遇到上述问题的用户的服务帐户存储在Windows凭据管理器中:


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

    经过一些额外的研究和故障排除,我确定遇到上述问题的用户将有问题的服务帐户存储在Windows凭据管理器中:


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

    我相信它将使用仅http的cookie来获取登录详细信息。(将浏览器会话与域登录绑定。)听起来好像这些用户的计算机上使用了此服务帐户登录,他们从该会话中保存了cookie。因此,一旦他们删除该cookie,当他们访问该站点时,将提示他们进行域登录。@pcalkins谢谢-我在这些用户的计算机上没有看到HttpOnly cookie,即使在清除了所有cookie和其他数据之后,这个问题似乎仍然存在。我在下面的另一条评论中提到,我已经与MS打开了一个支持票证,我将在这里更新他们的发现和/或解决方案。我相信它将使用仅http的cookie来获取登录详细信息。(将浏览器会话与域登录绑定。)听起来好像这些用户的计算机上使用了此服务帐户登录,他们从该会话中保存了cookie。因此,一旦他们删除该cookie,当他们访问该站点时,将提示他们进行域登录。@pcalkins谢谢-我在这些用户的计算机上没有看到HttpOnly cookie,即使在清除了所有cookie和其他数据之后,这个问题似乎仍然存在。我在下面的另一条评论中提到,我已经向MS申请了支持票,我将在这里更新他们的发现和/或解决方案。谢谢。IIS中的站点和应用程序都禁用了匿名身份验证并启用了Windows身份验证。用户通常不使用Internet Explorer,但我与一位用户确认,已选中“启用集成Windows身份验证”,并已使用“自动登录…”选项将站点添加到本地Intranet区域,但问题仍然存在。用户和应用服务器位于同一个域上。我正在就此向MS申请支持,我将在这里更新我的发现和/或解决方案。谢谢。IIS中的站点和应用程序都禁用了匿名身份验证并启用了Windows身份验证。用户通常不使用Internet Explorer,但我与一位用户确认,已选中“启用集成Windows身份验证”,并已使用“自动登录…”选项将站点添加到本地Intranet区域,但问题仍然存在。用户和应用服务器位于同一个域上。我正在就此向MS申请支持,我将在这里更新我的发现和/或解决方案。