gpt4 book ai didi

c# - ASP.NET 默认 _LoginPartial View 中的一个小改动不起作用

转载 作者:行者123 更新时间:2023-11-30 17:36:47 24 4
gpt4 key购买 nike

在我的 ASP.NET Core 项目中使用 Individual User Accounts我通过添加角色检查来显示 Register 做了一个小改动。链接(默认情况下显示在右上角)仅在用户登录并处于管理员角色时显示,以便只有管理员在登录后才能将其他用户也添加到系统中。但由于某种原因,以下部分未显示 Register即使您以 AdminRole 中的管理员身份登录,也可以链接.我已经通过放置一个断点来检查 User.IsInRole("AdminRole")计算结果为真:

_LoginPartial:

@model ABCTest.Models.ABCTest.CurrentYear
@using Microsoft.AspNetCore.Identity
@using ABCTest.Models

@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager

@if (SignInManager.IsSignedIn(User))
{
<form asp-area="" asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm">
<ul class="nav navbar-nav navbar-left">
<li><a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Welcome @UserManager.GetUserName(User), you are working with year @Model.CurrentYr - @(@Model.CurrentYr + 1)</a></li>
</ul>
<ul class="navbar-right" style="list-style:none;">
@{bool bTest = User.IsInRole("AdminRole");
if (bTest)
{
<li><a asp-area="" asp-controller="Account" asp-action="Register">Register</a></li>
}
}
<li><button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button></li>
</ul>
</form>
}
else
{
<ul class="nav navbar-nav navbar-right">
<li><a asp-area="" asp-controller="Account" asp-action="Login">Log in</a></li>
</ul>
}

即使登录用户处于 AdminRole 也不会显示的部分:

@{bool bTest = User.IsInRole("AdminRole");
if (bTest)
{
<li><a asp-area="" asp-controller="Account" asp-action="Register">Add User</a></li>
}
}

更新

  1. 我已验证用户 Admin 在 AdminRole
  2. 当我单步执行代码时,它会将我带到 if (bTest)工具提示显示为 true 的部分,之后我可以看到光标转到 { if 语句的一部分,然后跳转到 } if 语句的一部分。但这可能是自 <li>....<\li> 以来发生的里面没有 c# 代码。

更新 2:

即使我硬编码if(bTest){...}作为if(true){...}该应用程序不显示 Register关联。 所以,我认为问题的症结在于:为什么应用会忽略 Register if statement里面的链接

最佳答案

最初我认为它与代码块中的内容有关,如果没有显式 @ 符号则无法呈现。但这不应该发生在 html 标签上。

然后我认为该标签可能已经呈现并被某种样式隐藏,或者由于导航栏结构不正确而没有显示。原来它被 OP 案例的 Logo 图像隐藏了。

关于c# - ASP.NET 默认 _LoginPartial View 中的一个小改动不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983050/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com