管理员策略不适用于授权属性

时间:2016-09-16 00:15:32

标签: asp.net-core authorization asp.net-identity

我希望我的后端管理员区域仅限于管理员角色中的人员。我读了一篇文章说政策是要走的路。但是每当我添加属性时,我都会被重定向到AccessDenied页面。

我明显有角色

这是数据库 enter image description here

StartUp.cs

        var defaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .RequireRole("Administrator")
            .Build();


        services.AddMvc(setup =>
        {
            setup.Filters.Add(new AuthorizeFilter(defaultPolicy));
        });

属性定义

[Authorize("Administrator")]
  • 因此,如果我都经过身份验证并具有该角色,为什么我无法到达任何地方?
  • 您如何命名该政策,例如授权("管理员")我不知道"管理员"来自(文章也不清楚)。

1 个答案:

答案 0 :(得分:1)

好的,一定是旧文章,或者角色检查只是彻底不起作用。文档中的策略语法似乎就像一个冠军。

启动

        services.AddMvc();

        services.AddAuthorization(options =>
        {
            options.AddPolicy("RequireAdministratorRole", policy => policy.RequireRole("Administrator"));
        });

控制器

[Authorize(Policy = "RequireAdministratorRole")]
public class AdminDashboardController : Controller