首页 > 解决方案 > razor 中的 MVC Core @User.Identity.Name 返回 null

问题描述

它运行得很好,并使用@User.Identity.Name 返回我本地机器上的名称(Windows 身份验证)。但是,如果我将它从本地移动到开发服务器,它只会返回没有名称的文本。不知道为什么我推送时@User.Identity.Name 不起作用。

<div class="navbar-collapse">
   <p class="nav navbar-text navbar-right">    
      <script id="greetings">
         document.write('Hello, ');
      </script>
      @User.Identity.Name
  </p>
</div>

标签: htmljqueryasp.netasp.net-core

解决方案


它运行得很好,并使用@User.Identity.Name 在我的本地(Windows 身份验证)中返回名称。但是,如果我将它从本地移动到开发服务器,它只会返回没有名称的文本。

正如我们在评论中所讨论的,如果启用了匿名身份验证,则会导致此问题。

另外,我们可以先检查用户是否被认证,然后在视图页面中显示当前非匿名用户的名称,而不是User.Identity.Name直接访问。

<div class="navbar-collapse">
    <p class="nav navbar-text navbar-right">
        <script id="greetings">
            document.write('Hello, ');
        </script>
        
        @if (User.Identity.IsAuthenticated)
        {
            <span>@User.Identity.Name</span>
        }
        else
        {
            <span>Anonymous user</span>
        }

    </p>
</div>

推荐阅读