在.Net Core中,控制器属性[AllowAnonymous]允许您将控制器设置为允许未登录的用户访问该控制器.
是否有相反的方法可以要求用户登录?如果不赋予所有用户角色,然后使用[Authorize(Roles =“ WarmBody”)]检查每个控制器,我看不到如何要求登录?
解决方法:
您应该添加自定义策略过滤器
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
//other code ...
}
//other code ...
}
或为每个控制器设置[Authorize]属性