Добавить глобальный фильтр авторизации в ASP.NET Core 2.0

в моих 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")))

но я думаю, что что-то не так здесь.




Ответы (1)


Сначала вы должны создать политику, используя AuthorizationPolicyBuilder в ConfigureServices, а затем вы можете сделать следующее:

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

Где политика - это ваша тестовая политика...

person Muqeet Khan    schedule 29.11.2017