Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Авторизация в ASP.NET Core управляется атрибутом [Authorize] и различными параметрами. В своей самой базовой форме применение атрибута [Authorize] к компоненту Razor, контроллеру, действию или Razor Page ограничивает доступ к этому компоненту для аутентифицированных пользователей.
В этой статье рассматриваются сценарии, относящиеся к приложениям MVC. Основную информацию по этой теме см. в разделе Простая авторизация в ASP.NET Core.
Атрибут
В следующем примере доступ ограничивается для пользователей, прошедших проверку подлинности, с помощью атрибута [Authorize]:
[Authorize]
public class AccountController : Controller
{
public ActionResult Login() { ... }
public ActionResult Logout() { ... }
}
Атрибут также поддерживает авторизацию на основе ролей или политик. Для авторизации на основе ролей используйте параметр. В следующем примере пользователь может получить доступ к странице, если он находится в роли Admin или Superuser:
[Authorize(Roles = "Admin, Superuser")]
public class OrderController : Controller
{
...
}
Для авторизации на основе политик используйте этот параметр. В следующем примере пользователь может получить доступ к странице, если он удовлетворяет требованиям политики авторизации: Over21политики авторизации.
[Authorize(Policy = "Over21")]
public class LicenseApplicationController : Controller
{
...
}
Если ни , ни не указаны, используется стандартная политика:
- Пользователи, прошедшие проверку подлинности, авторизованы.
- Неавторизованные (вышедшие из системы) пользователи не имеют разрешения.
Чтобы применить авторизацию к действию, а не к контроллеру, примените атрибут к действию. В следующем примере только прошедшие проверку подлинности пользователи могут активировать выход (вызвать метод):
public class AccountController : Controller
{
public ActionResult Login() { ... }
[Authorize]
public ActionResult Logout() { ... }
}
Используйте атрибут [AllowAnonymous], чтобы разрешить доступ неаутентифицированным пользователям к отдельным действиям.
[AllowAnonymous]
Предупреждение
Для контроллеров MVC атрибут обходит инструкции авторизации. При объединении и одном или нескольких атрибутах атрибуты игнорируются. При применении на уровне контроллера:
- Все требования к авторизации из атрибутов на одном контроллере или методах действий на контроллере игнорируются.
- Промежуточное ПО для аутентификации не прерывается, однако не обязательно должна быть успешной.
Сведения о том, как требовать проверку подлинности для всех пользователей приложений, см. в статье Create приложение ASP.NET Core с данными пользователя, защищенными авторизацией.
Дополнительные ресурсы
- Простая авторизация в ASP.NET Core
- Простая авторизация в ASP.NET Core Razor Pages
ASP.NET Core