2015-07-19 21 views
3

沒有人知道的等效:在Microsoft.AspNet.Identity等效ClaimsAuthorizationAttribute的3

[ClaimsAuthorization(ClaimType="", ClaimValue="")] 

Microsoft.AspNet.Identity 3(beta6)

實施例與Identity 2.1:

[HttpGet] 
[ClaimsAuthorization(ClaimType="ManageStore", ClaimValue="Allowed")] 
public IActionResult Register() 
{ 
    return View(); 
} 
+1

我認爲這個問題得到什麼你正在嘗試做的。它指的是ManageStore權限,並顯示如何在最新版音樂商店示例中配置該權限。 http://stackoverflow.com/questions/31464359/custom-authorizeattribute-in-asp-net-5-mvc-6 –

回答

3

@ tailmax的方法在ASP.NET 5 beta4中可以正常工作,但不適用於beta5,beta6和下一版本,因爲AuthorizeAttribute已經完全改造,不再暴露OnAuthorization(現在它只是一個標記)。

建議的方法是使用新的授權服務來配置一個新的政策,簡單地使用AuthorizeAttribute

public void ConfigureServices([NotNull] IServiceCollection services) { 
    services.ConfigureAuthorization(options => { 
     options.AddPolicy("ManageStore", policy => { 
      policy.RequireAuthenticatedUser(); 

      policy.RequireClaim("ManageStore", "Allowed"); 
     }); 
    }); 
} 

public class StoreController : Controller { 
    [Authorize(Policy = "ManageStore"), HttpGet] 
    public async Task<IActionResult> Manage() { ... } 
} 
+1

是的,正是這個,+1 –