在.Net Core中,控制器属性[AllowAnonymous]允许您设置控制器以允许未登录的用户访问控制器。
有没有办法做相反的事情,要求用户登录?如果没有给所有用户一个角色,然后用[Authorize(Roles =“WarmBody”)]检查每个控制器,我看不出如何要求登录?
答案 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