简单授权

asp.net 核心的授权就是 AuthorizeAttribute

[Authorize]
public class SomeController : Controller
{
    public IActionResult Get()
    {
    }

    public IActionResult Post()
    {
    }
}

这只允许登录用户访问这些操作。

或使用以下内容仅限制单个操作

public class SomeController : Controller
{
    public IActionResult Get()
    {
    }

    [Authorize]
    public IActionResult Post()
    {
    }
}

如果你想允许所有用户访问其中一个操作,你可以使用 AllowAnonymousAttribute

[Authorize]
public class SomeController: Controller
{
    public IActionResult Get()
    {
    }
    
    [AllowAnonymous]
    public IActionResult Post()
    {
    }
}

现在任何用户都可以访问 PostAllowAnonymous 总是优先授权,所以如果一个控制器设置为 AllowAnonymous 那么它的所有动作都是公开的,无论它们是否有 AuthorizeAttribute

可以选择将所有控制器设置为需要授权的请求 -

services.AddMvc(config =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    config.Filters.Add(new AuthorizeFilter(policy));
}) 

这是通过向每个控制器添加默认授权策略来完成的 - 控制器/操作上的任何 Authorize / AllowAnonymous 属性都将覆盖这些设置。