首页 文章

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

提问于
浏览
3

在.Net Core中,控制器属性[AllowAnonymous]允许您设置控制器以允许未登录的用户访问控制器 .

有没有办法做相反的事情,要求用户登录?没有给所有用户一个角色,然后用[Authorize(Roles =“WarmBody”)]检查每个控制器,我看不到如何要求登录?

2 回答

  • 1

    您应该添加自定义策略过滤器

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

  • 3

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

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

相关问题