User.Identity.Name在Visual Studio中返回空

时间:2015-10-22 23:04:36

标签: asp.net-mvc authentication visual-studio-2012 iis-7

我遇到的问题是 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

2 个答案:

答案 0 :(得分:1)

解决问题的选项,您必须在计算机上启用Windows身份验证功能(具有相同的问题一次):

  • 单击“开始”,然后单击“控制面板”。
  • 打开“程序”组。
  • 在“程序和-Features”下,单击“打开或关闭Windows功能”。
  • 展开标记为Internet Information Services的项目。
  • 展开标记为“万维网服务”的项目。
  • 展开项目安全性 - &gt;确保选择Windows身份验证

替代:可能只是配置问题:

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

答案 1 :(得分:0)

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

Authentication issue when debugging in VS2013 - iis express

<强>答案:

  

在Visual Studio 2013中,只需按F4并更改这两个属性即可   匿名身份验证:禁用Windows身份验证:启用