在ASP.NET Core 2.0中添加全局授权过滤器

Hul*_*ulk 3 authorization asp.net-authorization asp.net-core-mvc asp.net-core asp.net-core-2.0

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

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

并按如下所示注册处理程序

services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();
Run Code Online (Sandbox Code Playgroud)

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

[Authorize(Policy = "test")]
Run Code Online (Sandbox Code Playgroud)

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

我试过了

services.AddMvc(config=>config.Filters.Add(new AuthorizeAttribute("test")))
Run Code Online (Sandbox Code Playgroud)

但我认为这里有问题。

Muq*_*han 5

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

services.AddMvc(config =>
{
    config.Filters.Add(new AuthorizeFilter(policy));
});
Run Code Online (Sandbox Code Playgroud)

政策在哪里是您的测试政策...


归档时间:

查看次数:

5954 次

最近记录:

6 年,1 月 前