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));