如何在 .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
在 .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