Поиск…


Простая авторизация

Авторизация в ядре 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 все его действия являются общедоступными, независимо от того, имеют ли они AllowAnonymous AuthorizeAttribute или нет.

Существует возможность установить для всех контроллеров требуемые авторизованные запросы -

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

Это делается путем добавления политики авторизации по умолчанию для каждого контроллера - любые атрибуты Authorize / AllowAnonymous по контроллеру / действию переопределяют эти параметры.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow