【问题标题】:Equivalent of ClaimsAuthorizationAttribute in Microsoft.AspNet.Identity 3Microsoft.AspNet.Identity 3 中 ClaimsAuthorizationAttribute 的等效项
【发布时间】:2015-10-08 14:35:18
【问题描述】:

有谁知道相当于:

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

Microsoft.AspNet.Identity 3 (beta6)

Identity 2.1 示例:

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

【问题讨论】:

  • 我认为这个问题得到了你想要做的事情。它指的是 ManageStore 权限,并显示了在最新版本的音乐商店示例中是如何配置的。 stackoverflow.com/questions/31464359/…

标签: asp.net-identity asp.net-core claims-based-identity


【解决方案1】:

@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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 2012-06-19
  • 2013-12-19
相关资源
最近更新 更多