2016-01-21 45 views

回答

1

This article很好地覆盖它。

本质上,[Authorize(Roles = "Blah")]只是为了向后兼容,政策是未来的方向。

我不会剪切和粘贴,但本质上,这个动作:

[Authorize("SalesOnly")] 
public IActionResult DoSalesyStuff() 
{ /* .. */ } 

有线在Startup.ConfigureServices:

// only allow authenticated users 
var defaultPolicy = new AuthorizationPolicyBuilder() 
    .RequireAuthenticatedUser() 
    .Build(); 

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

services.AddAuthorization(options => 
{ 
    // inline policies 
    options.AddPolicy("SalesOnly", policy => 
    { 
     policy.RequireClaim("department", "sales"); // Some policy 
    }); 
}); 

笔者把他们的full example code on github和来源为security middleware is here