C# 基于HttpVerb的ASP.Net核心全局授权过滤器

C# 基于HttpVerb的ASP.Net核心全局授权过滤器,c#,authentication,asp.net-core,authorization,httpverbs,C#,Authentication,Asp.net Core,Authorization,Httpverbs,我正在尝试创建一个简单的策略,默认情况下,该策略允许匿名请求所有HttpGet获取,并授权其他任何内容(put、patch、post、delete等) 目前,我在任何地方都需要授权,如下所示: var authorizationPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); services.AddMvc(config => config.Fil

我正在尝试创建一个简单的策略,默认情况下,该策略允许匿名请求所有HttpGet获取,并授权其他任何内容(put、patch、post、delete等)

目前,我在任何地方都需要授权,如下所示:

var authorizationPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();

services.AddMvc(config => config.Filters.Add(new AuthorizeFilter(authorizationPolicy)))
但实际上我想做这样的事情:

var authorizationPolicy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser(opt => opt.DesinationCalls.Where(m =>
             false == m.Attributes.Any(x => x == "HttpGet"))).Build();
我不想记住向控制器添加属性,
有人知道如何通过Http谓词筛选默认授权策略吗?

RequireAuthenticatedUser所做的只是向策略中添加DenyAnonymousAuthorizationRequirement。也许您可以创建自己的需求,该需求继承自AuthorizationHandler