2016-09-16 116 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