簡單授權

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 屬性都將覆蓋這些設定。