我希望我的后端管理员区域仅限于管理员角色中的人员。我读了一篇文章说政策是要走的路。但是每当我添加属性时,我都会被重定向到AccessDenied页面。
我明显有角色
StartUp.cs
var defaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole("Administrator")
.Build();
services.AddMvc(setup =>
{
setup.Filters.Add(new AuthorizeFilter(defaultPolicy));
});
属性定义
[Authorize("Administrator")]
答案 0 :(得分:1)
好的,一定是旧文章,或者角色检查只是彻底不起作用。文档中的策略语法似乎就像一个冠军。
启动
services.AddMvc();
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdministratorRole", policy => policy.RequireRole("Administrator"));
});
控制器
[Authorize(Policy = "RequireAdministratorRole")]
public class AdminDashboardController : Controller