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

时间:2017-11-17 15:32:45

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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