【问题标题】:How to require non-anonymous user in .Net Core?如何在 .Net Core 中要求非匿名用户?
【发布时间】:2018-05-01 10:29:33
【问题描述】:

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

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

【问题讨论】:

    标签: c# asp.net-core authorization asp.net-authorization


    【解决方案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]属性

    【讨论】:

    • “或为每个控制器设置 [Authorize] 属性”您也可以在自定义基本控制器上执行此操作,并且每个需要授权的控制器都从该控制器继承。取决于需要身份验证的控制器是否比允许匿名访问的控制器多。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2022-08-16
      • 2013-04-29
      相关资源
      最近更新 更多