2016-09-16 203 views
0

我的后端管理员区域我想限制为管理员角色中的人员。我读过一篇文章说政策是要走的路。然而,每当我添加属性,我只是重定向到AccessDenied页面。管理员策略对授权属性不起作用

我显然有作用

这里的DB 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")] 
  • 所以,如果我是认证,并有角色,为什么我不能得到任何地方?
  • 你如何命名政策,如授权(“管理员”)我不知道“管理员”来自哪里(文章不明确)。
+0

即使我删除所有的政策的东西,只是尝试基于角色名称(这是传统的方法是什么?),以检查它仍然转储我到未经授权页面。 [授权(角色=“管理员”)] –

回答

0

好吧,一定是旧文章,或角色检查完全不起作用。文档中的策略语法似乎像冠军一样工作。

启动

 services.AddMvc(); 

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

控制器

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