MVC -退出后,布局保持显示菜单
本文关键字:显示 菜单 布局 退出 MVC | 更新日期: 2023-09-27 18:08:50
我目前正在做一个网站,遵循多视指南。我有两个主要的问题与web应用程序:
-
注销后,以下
if
语句下的项目仍然显示:@if (User.Identity.IsAuthenticated) { <li class="nav-item btn-group"> <a class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fa fa-user"></i> <span class="hidden-sm-down"> @User.Identity.Name </span> </a> <div class="dropdown-menu"> <a class="dropdown-item" asp-controller="Account" asp-action="Account"> Account <i class="fa fa-user" aria-hidden="true"></i> </a> <a class="dropdown-item" asp-controller="Settings" asp-action="Settings"> Settings <i class="fa fa-gear" aria-hidden="true"></i> </a> <div class="dropdown-divider"></div> <a class="dropdown-item" asp-controller="Logout" asp-action="Logout"> Logout <i class="fa fa-sign-out" aria-hidden="true"></i> </a> </div> </li> }
-
第二个问题是对登录的用户隐藏菜单:
@if (!User.Identity.IsAuthenticated) { <li class="nav-item @(ViewContext.RouteData.Values["Controller"].ToString() == "Contact" ? "active" : "")"> <a class="nav-link" asp-controller="Contact" asp-action="Contact">Contact</a> </li> <li class="nav-item @(ViewContext.RouteData.Values["Controller"].ToString() == "About" ? "active" : "")"> <a class="nav-link" asp-controller="About" asp-action="About">About</a> </li> }
如果User.Identity.IsAuthenticated
返回一个布尔值,我不确定为什么这不会工作。
我的导航栏在退出后显示菜单的图片
如果需要,我会提供更多的细节。提前感谢!当您使用SignOut()
时,用户在下一个(http)请求时注销。
- 重定向
-
或强制注销。这似乎只能在非核心ASP中实现。Net:要立即注销,使用默认值清除
User
属性:FormsAuthentication.SignOut(); //log off immediately HttpContext.Current.User = new GenericPrincipal(new GenericIdentity(string.Empty), null);