如何在 .Net Core 中要求非匿名用户?

How to require non-anonymous user in .Net Core?

在 .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]属性

您不需要基于角色的授权,只需使用控制器上的 [Authorize] 属性或您想限制登录用户的操作。

https://docs.microsoft.com/en-us/aspnet/core/security/authorization/simple