Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Авторизация в 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] используется стандартная политика:
- Пользователи, прошедшие проверку подлинности, авторизованы.
- Неавторизованные (вышедшие из системы) пользователи не имеют разрешения.
Конечные точки без метаданных авторизации не используют политику по умолчанию. Такие конечные точки не требуют авторизации, если приложение не настраивает резервную политику. Сравнение именованных, стандартных и резервных политик см. в разделе "Авторизация на основе политик" в ASP.NET Core.
Если пользователь не авторизован и если приложение не настраивает несанкционированное содержимое с Router помощью компонента, фреймворк автоматически отображает следующее резервное сообщение:
Not authorized.
Дополнительные сведения о проверке подлинности и авторизации Blazor см. в разделе ASP.NET Core Blazor аутентификации и авторизации.
Используйте атрибут [AllowAnonymous], чтобы разрешить доступ неавторизованным пользователям к отдельным действиям.
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
Сведения о серверных приложениях, где большинство конечных точек требуют проверки подлинности, см. в разделе "Требовать глобальную проверку подлинности пользователей".
Дополнительные ресурсы
- Простая авторизация в ASP.NET Core Pages
- Простая авторизация в ASP.NET Core MVC
ASP.NET Core