【问题标题】:Add global Authorization filter in ASP.NET Core 2.0 [duplicate]在 ASP.NET Core 2.0 中添加全局授权过滤器 [重复]
【发布时间】:2018-05-12 16:24:51
【问题描述】:

在我的 ConfigureServices 中,我创建了一个基于策略的授权

 services.AddAuthorization(options =>
 {
     options.AddPolicy("test", policy => policy.Requirements.Add(new TestRequirement()));
 });

并注册如下处理程序

services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();

但不是像这样在所有控制器之上应用授权

[Authorize(Policy = "test")]

有没有办法像在 MVC 5 中一样全局应用授权属性?

我试过了

services.AddMvc(config=>config.Filters.Add(new AuthorizeAttribute("test")))

但我认为这里有问题。

【问题讨论】:

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


    【解决方案1】:

    您应该首先在 ConfigureServices 中使用 AuthorizationPolicyBuilder 创建一个策略,然后您可以执行以下操作:

    services.AddMvc(config =>
    {
        config.Filters.Add(new AuthorizeFilter(policy));
    });
    

    policy 是你的测试策略...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 2019-05-13
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多