如何解决当具有匹配角色的用户登录时,不显示 AuthorizeView 元素的内容
我添加了一个管理员角色,应该允许管理员导航到一个页面。导航选项只能由管理员查看。
以下是我如何定义(和添加)管理员角色和用户 (startup.cs
):
//this credentials are NOT for production
private async Task CreateRolesandUsers(RoleManager<IdentityRole> roleManager,UserManager<ApplicationUser> userManager)
{
bool x = await roleManager.RoleExistsAsync("Admin");
if(!x)
{
// first we create Admin rool
var role = new IdentityRole();
role.Name = "Admin";
await roleManager.CreateAsync(role);
//Here we create a Admin super user who will maintain the website
var user = new ApplicationUser();
user.UserName = "aviv@gmail.com";
user.Email = "aviv@gmail.com";
string userPWD = "aviv@gmail.com";
IdentityResult chkUser = await userManager.CreateAsync(user,userPWD);
//Add default User to Role Admin
if(chkUser.Succeeded)
{
var result1 = await userManager.AddToRoleAsync(user,"Admin");
}
}
}
检查了数据库,它似乎更新得很好,添加了用户和角色并将两者连接起来。尝试使用上述凭据登录时,登录工作正常。
然而,在 Blazor WebAssembly 客户端,当我尝试显示管理员角色时 - 只有这样的内容:
<AuthorizeView>
<Authorized>
stuff for any logged in use (works)
</Authorized>
<NotAuthorized></NotAuthorized>
</AuthorizeView>
<AuthorizeView Roles="Admin">
<h1>test2</h1>
<button @onclick="AdminRedirect">Ban users</button>
stuff only for admins (dosen't work)
</AuthorizeView>
然后尝试从我的管理员帐户登录并导航到此页面,我只能看到每个登录用户都可以看到的内容,而不能看到管理员 - 只有内容。
这是为什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。