asp.net-core - 用户身份角色
问题描述
我正在使用 asp.net core razor 页面我花了很多时间来处理这个看起来很容易但找不到解决方案的东西。
创建一个项目并运行良好,登录,注册等。但授权不适用于角色。创建角色并且:
但是在尝试访问时总是返回 Access Denied:
现在我在 AspNetUserRoles 数据库中创建两个角色 1-Admin 2-User
这是我的代码
[Authorize(Policy = "Admin")]
public class AdminModel : PageModel
{
public void OnGet()
{
}
}
在启动时是
services.AddAuthorization(options =>
{
options.AddPolicy("Admin",
policy => policy.RequireRole("Admin"));
});
问题总是拒绝访问?
解决方案
角色的NormalizedName
应为大写 - ADMIN。最好使用RoleManager.CreateAsync
API 创建角色,而不是手动将它们添加到数据库中。