在一些应用程序中,我们可能需要对所有请求都要求登录的用户才能访问。我们不可能在所有的控制器中一一添加认证属性。如何在一处设置就可以达到要求呢?
有以下两种方法:
第一种是在添加授权服务的时候,设置一个授权策略,要求认证的用户用才能访问,具体如下
// 授权
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));