管理员策略对授权属性不起作用
问题描述:
我的后端管理员区域我想限制为管理员角色中的人员。我读过一篇文章说政策是要走的路。然而,每当我添加属性,我只是重定向到AccessDenied页面。管理员策略对授权属性不起作用
我显然有作用
StartUp.cs
var defaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole("Administrator")
.Build();
services.AddMvc(setup =>
{
setup.Filters.Add(new AuthorizeFilter(defaultPolicy));
});
属性定义
[Authorize("Administrator")]
- 所以,如果我是认证,并有角色,为什么我不能得到任何地方?
- 你如何命名政策,如授权(“管理员”)我不知道“管理员”来自哪里(文章不明确)。
答
好吧,一定是旧文章,或角色检查完全不起作用。文档中的策略语法似乎像冠军一样工作。
启动
services.AddMvc();
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdministratorRole", policy => policy.RequireRole("Administrator"));
});
控制器
[Authorize(Policy = "RequireAdministratorRole")]
public class AdminDashboardController : Controller
即使我删除所有的政策的东西,只是尝试基于角色名称(这是传统的方法是什么?),以检查它仍然转储我到未经授权页面。 [授权(角色=“管理员”)] –