Поделиться через


Простая авторизация в ASP.NET Core

Авторизация в ASP.NET Core управляется атрибутом [Authorize] и различными параметрами. В самой базовой форме применение атрибута [Authorize] к компоненту Razor, контроллеру, действию или Razor-странице ограничивает доступ к этому компоненту только для пользователей, прошедших проверку подлинности.

В этой статье используются примеры компонентов и рассматриваются сценарии авторизации. Инструкции по Pages и MVC см. в следующих ресурсах после прочтения этой статьи:

  • Простая авторизация в ASP.NET Core Pages
  • Простая авторизация в ASP.NET Core MVC

Атрибут

В приложениях укажите атрибут в верхней части файла компонента (). В следующем примере только прошедшие проверку подлинности пользователи могут access страницу:

@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]

You can only see this if you're signed in.

Это важно

Используйте атрибут только для компонентов, достигнутых через маршрутизатор. Авторизация выполняется только как аспект маршрутизации и не для дочерних компонентов, которые отображаются на странице. Чтобы авторизовать отображение определенных частей на странице, используйте вместо этого компонент AuthorizeView, который описан в разделе ASP.NET Core Blazor аутентификации и авторизации.

Атрибут также можно применить ко всем компонентам приложения или подмножества компонентов в папке с помощью файла (). Добавьте директиву для пространства имен с директивой атрибута:

@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]

Атрибут также поддерживает авторизацию на основе ролей или политик. Для авторизации на основе ролей используйте параметр. В следующем примере пользователь может получить доступ к странице, только если он входит в роль Admin или Superuser.

@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]

<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>

Для авторизации на основе политик используйте этот параметр. В следующем примере пользователь может получить доступ к странице, если он удовлетворяет требованиям политики Over21авторизации:

@page "/"
@attribute [Authorize(Policy = "Over21")]

<p>You can only see this if you satisfy the 'Over21' policy.</p>

Если ни , ни не указаны, используется стандартная политика:

  • Пользователи, прошедшие проверку подлинности, авторизованы.
  • Неавторизованные (вышедшие из системы) пользователи не имеют разрешения.

Если пользователь не авторизован и если приложение не настраивает несанкционированное содержимое с помощью компонента, фреймворк автоматически отображает следующее резервное сообщение:

Not authorized.

Дополнительные сведения о проверке подлинности и авторизации Blazor см. в разделе ASP.NET Core Blazor аутентификации и авторизации.

Используйте атрибут [AllowAnonymous], чтобы разрешить доступ неавторизованным пользователям к отдельным действиям.

@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]

Сведения о том, как требовать проверку подлинности для всех пользователей приложений, см. в статье Create приложение ASP.NET Core с данными пользователя, защищенными авторизацией.

Дополнительные ресурсы

  • Простая авторизация в ASP.NET Core Страницы
  • Простая авторизация в ASP.NET Core MVC