Если я понимаю, что вы имеете в виду правильно, вы ищете что-то вроде этого: вы хотите классифицировать некоторые действия в контроллере, некоторые действия могут быть выполнены после авторизации, а в противном случае.
В В этом случае вы можете установить [Authorize]
и [AllowAnonymous]
поверх этих действий:
public class HomeController : Controller
{
[AllowAnonymous]
public async Task Invoke(HttpContext context)
{
// all of codes here can be executed with unauthorized request(s).
// code goes here...
}
[Authorized]
public async Task Invoke_2(HttpContext context)
{
// all of codes here can be executed WHEN the request is authorized
// code goes here...
}
}
И, если вы хотите авторизовать все запросы, которые попадут на контроллер, вы можете установить [Authorize]
атрибут в верхней части имени контроллера:
[Authorize]
public class HomeController : Controller
{
// this attribute is still required when you allow anonymous request(s)
[AllowAnonymous]
public async Task Invoke(HttpContext context)
{
// all of codes here can be executed with unauthorized request(s).
// code goes here...
}
// you can remove [Authorize] attribute from this action, because
// it's authorized by default
public async Task Invoke_2(HttpContext context)
{
// all of codes here can be executed WHEN the request is authorized
// code goes here...
}
}
Примечание: Поскольку вы работаете с Task
, лучше, если вы назовете свое действие, которое заканчивается на Async
, например: InvokeAsync
или Invoke_2Async
.