代码之家  ›  专栏  ›  技术社区  ›  dinotom

基于登录用户Asp Net Core 2显示某些列表项

  •  1
  • dinotom  · 技术社区  · 8 年前

    我试图找出使用身份验证来控制显示哪个ul标签的最佳方法

    当前html

     //wrap all this is authentication razor code?
     <!-- START Profile button menu -logged in -->
     <ul class="dropdown-menu dropdown-menu-right">
         <li class="dropdown-header">Profile</li>
         <li>
             <a tabindex="-1" asp-area="" asp-controller="Manage" asp-action="Index">
                 <i class="si si-envelope-open pull-right"></i>
                 <span class="badge badge-primary pull-right">3</span>Inbox
             </a>
         </li>
         <li>
             <a tabindex="-1" asp-area="" asp-controller="Manage" asp-action="Index">
                 <i class="si si-user pull-right"></i>
                 <span class="badge badge-success pull-right">1</span>Profile
             </a>
         </li>
         <li>
             <a tabindex="-1" href="javascript:void(0)">
                 <i class="si si-settings pull-right"></i>Settings
             </a>
         </li>
         <li class="divider"></li>
         <li class="dropdown-header">Actions</li>
         <li>
              <a tabindex="-1" asp-area="" asp-controller="Account" asp-action="Lockout">
                  <i class="si si-lock pull-right"></i>Lock Account
              </a>
         </li>
         <li>
              <a tabindex="-1" asp-area="" asp-controller="Account" asp-action="Logout">
                  <i class="si si-logout pull-right"></i>Log out
              </a>
         </li>
    </ul>
    <!-- END Profile button menu -logged in-->
    <!-- START Profile button menu - not logged in-->
    <ul class="dropdown-menu dropdown-menu-right">
         <li class="dropdown-header">Actions</li>
         <li>
             <a tabindex="-1" asp-area="" asp-controller="Account" asp-action="Login">
                 <i class="si si-logout pull-right"></i>Login
             </a>
         </li>
         <li>
             <a tabindex="-1" asp-area="" asp-controller="Register" asp-action="Register">
                <i class="si si-lock pull-right"></i>Register
             </a>
         </li>
    </ul>
    <!-- END Profile button menu - not logged in -->
    

    我找到了DavePaquette关于自定义标记帮助程序的一篇博文来实现这一点,但我无法让它发挥作用。这个html在我的标题导航的局部视图中,所以我不能(或者不知道如何在控制器中检查),所以我选择使用Razor测试登录用户。

    在简单登录用户检查中,我没有看到任何博客或tuorial。它们都与政策、声明等有关。我只是想知道用户是否登录,并根据这一点显示ul。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Leonardo Henriques    8 年前

    我想你需要使用 SignInManager 查看是否有任何用户登录。这将使用 Claims 。如果您正在使用 AplicationUser 模型可以执行以下操作。

    在razor页面上使用:

    inject SignInManager<ApplicationUser> SignInManager
    

    然后:

    @if (SignInManager.IsSignedIn(User))
    {
        //some html...
    }
    
    推荐文章