User.Identity.Name return Visual Studio 为空

User.Identity.Name return empty in Visual Studio

我遇到的问题是 User.Identity.Name 仅在我的本地 Visual Studio 环境中返回为空。当站点在 IIS 上发布时,它工作正常并获得正确的用户。

我在网上搜索了这个问题,但看起来大多数建议的解决方案都是针对 IIS 环境建议的,并要求更改配置文件。我的配置文件如下所示:

<system.web>
    <compilation debug="true" targetFramework="4.6" />
    <httpRuntime targetFramework="4.6" />
    <customErrors mode="Off" />
    <authentication mode="Windows" />
    <!--<authorization>
      <allow roles="IS APPS" />
      <deny users="?" />
    </authorization>-->

  </system.web>

我不得不注释掉它所做的部分 因为如果我打开它,我 运行 进入 401.2 HTTpError

解决问题的一个选项,你必须在你的机器上启用Windows身份验证功能(曾经遇到过同样的问题):

  • 单击“开始”,然后单击“控制面板”。
  • 打开程序组。
  • 在程序和功能下,单击打开或关闭 Windows 功能。
  • 展开标有 Internet 信息服务的项目。
  • 展开标有万维网服务的项目。
  • 展开项目安全 -> 确保 select Windows 身份验证

备选方案:可能只是一个配置问题:

<authentication mode="Windows">
    <anonymousAuthentication enabled="false" userName="" />
</authentication>

这是我从另一个 SO POST 中找到的答案。不知道为什么这没有被标记为 POST:

的答案

Authentication issue when debugging in VS2013 - iis express

答案:

In Visual Studio 2013 just press F4 and change this two properties Anonymous Authentication: Disable Windows Authentication: Enable