簡單授權
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()
{
}
}
現在任何使用者都可以訪問 Post
。AllowAnonymous
總是優先授權,所以如果一個控制器設定為 AllowAnonymous
那麼它的所有動作都是公開的,無論它們是否有 AuthorizeAttribute
。
可以選擇將所有控制器設定為需要授權的請求 -
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
})
這是通過向每個控制器新增預設授權策略來完成的 - 控制器/操作上的任何 Authorize
/ AllowAnonymous
屬性都將覆蓋這些設定。