Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Авторизация в ASP.NET Core управляется атрибутом [Authorize] и различными параметрами. В самой базовой форме применение атрибута [Authorize] к компоненту Razor, контроллеру, действию или Razor-странице ограничивает доступ к этому компоненту только для пользователей, прошедших проверку подлинности.
В этой статье используются BlazorRazor примеры компонентов и рассматриваются Blazor сценарии авторизации. Инструкции Razor по Pages и MVC см. в следующих ресурсах после прочтения этой статьи:
- Простая авторизация в ASP.NET Core Pages
- Простая авторизация в ASP.NET Core MVC
Атрибут [Authorize]
В Blazor приложениях укажите [Authorize] атрибут в верхней части Razor файла компонента (.razor). В следующем примере только прошедшие проверку подлинности пользователи могут access страницу:
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
You can only see this if you're signed in.
Это важно
Используйте [Authorize] атрибут только для @page компонентов, достигнутых через Blazor маршрутизатор. Авторизация выполняется только как аспект маршрутизации и не для дочерних компонентов, которые отображаются на странице. Чтобы авторизовать отображение определенных частей на странице, используйте вместо этого компонент AuthorizeView, который описан в разделе ASP.NET Core Blazor аутентификации и авторизации.
Атрибут[Authorize] также можно применить ко всем Razor компонентам Blazor приложения или подмножества Razor компонентов в папке с помощью файла импорта (_Imports.razor). Добавьте директиву @using для пространства имен Microsoft.AspNetCore.Authorization с директивой @attribute для атрибута [Authorize]:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
Атрибут [Authorize] также поддерживает авторизацию на основе ролей или политик. Для авторизации на основе ролей используйте Roles параметр. В следующем примере пользователь может получить доступ к странице, только если он входит в роль Admin или Superuser.
@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]
<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>
Для авторизации на основе политик используйте Policy этот параметр. В следующем примере пользователь может получить доступ к странице, если он удовлетворяет требованиям политики Over21авторизации:
@page "/"
@attribute [Authorize(Policy = "Over21")]
<p>You can only see this if you satisfy the 'Over21' policy.</p>
Если ни Roles, ни Policy не указаны, [Authorize] используется стандартная политика:
- Пользователи, прошедшие проверку подлинности, авторизованы.
- Неавторизованные (вышедшие из системы) пользователи не имеют разрешения.
Если пользователь не авторизован и если приложение не настраивает несанкционированное содержимое с Router помощью компонента, фреймворк автоматически отображает следующее резервное сообщение:
Not authorized.
Дополнительные сведения о проверке подлинности и авторизации Blazor см. в разделе ASP.NET Core Blazor аутентификации и авторизации.
Используйте атрибут [AllowAnonymous], чтобы разрешить доступ неавторизованным пользователям к отдельным действиям.
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
Сведения о том, как требовать проверку подлинности для всех пользователей приложений, см. в статье Create приложение ASP.NET Core с данными пользователя, защищенными авторизацией.
Дополнительные ресурсы
- Простая авторизация в ASP.NET Core Pages
- Простая авторизация в ASP.NET Core MVC
ASP.NET Core