Вы можете зарегистрировать фильтр по всему миру (для всех контроллеров и действий) добавив его в коллекцию MvcOptions.Filters в ConfigureServices в классе Startup:
Вы не можете добавить AuthorizeAttribute в MvcOptions.Filters. Создайте AuthorizationPolicy и используйте AuthorizeFilter:
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.RequireRole("Admin", "SuperUser")
.Build();
services.AddMvc(options =>
{
options.Filters.Add(new AuthorizeFilter(policy));
});
Ответ 2
Вы также можете использовать приведенный ниже код. Это использует тип, а не экземпляр.
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/"); // Require users to be authenticated.
options.Conventions.AuthorizeFolder("/", "YourPolicyName"); // Require a policy to be full filled globally.
});