ASP.NET Core MVC 全局设置用户认证要求


在一些应用程序中,我们可能需要对所有请求都要求登录的用户才能访问。我们不可能在所有的控制器中一一添加认证属性。如何在一处设置就可以达到要求呢?

有以下两种方法:

第一种是在添加授权服务的时候,设置一个授权策略,要求认证的用户用才能访问,具体如下

// 授权
services.AddAuthorization(options =>
{

      // Fallback authentication policy
      // 设置授权策略,要求认证的用户
      options.FallbackPolicy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
});

第二种方法是在添加 MVC 服务时设置过滤器:

var policy = new AuthorizationPolicyBuilder()
                  .RequireAuthenticatedUser()
                  .Build();
config.Filters.Add(new AuthorizeFilter(policy));