我正在尝试适应 ASP.NET Core MVC,但我在用户角色方面遇到了问题。
我成功注册admin角色账号后,但是调试时,下面这行代码返回null
var userRoles = await userManager.GetRolesAsync(user); // returns null
并且条件总是返回 false:
<ul class="nav navbar-nav">
<li><a href="/Dashboard/Display">Dashboard</a></li>
@if (User.IsInRole("admin"))
{
<li><a href="/Admin/Display">Admin Page</a></li>
}
<li><a href="/UserAuthentication/Logout">Log Out</a></li>
</ul>
我不知道我错在哪里,有人可以帮助我吗?
此问题的根本原因是您缺少将数据插入到 dbo.AspNetUserRoles 表中。
您可以从 db.AspNetUsers 表复制 userid,并从 dbo.AspNetRoles 表复制特定测试用户的 roleid。重新登录进行测试。
如果有效,请尝试在
ResgistrationAsync
方法中添加更多关于地图useid和roleid的逻辑。