MVC 6 [授权(角色=" *")]简单示例

时间:2016-01-21 19:49:19

标签: asp.net-core asp.net-core-mvc

我正在尝试使用最新版本的asp.net 5进行身份验证和授权。

是否有简单的示例说明需要添加到Startup.cs中以连接此功能?

1 个答案:

答案 0 :(得分: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 githubsecurity middleware is here的来源。

放在一起