Jednoduchá autorizace v ASP.NET Core

Autorizace v ASP.NET Core se řídí atributem [Authorize] a jeho různými parametry. Ve své nejzákladnější podobě použití atributu [Authorize] na komponentu Razor, kontroleru, akci nebo Razor Page omezuje access na tuto komponentu na ověřené uživatele.

Tento článek používá příklady komponent a zaměřuje se na scénáře autorizace. Pokyny ke stránkám a MVC najdete v následujících zdrojích informací po přečtení tohoto článku:

atribut

V aplikacích určete atribut v horní části souboru komponenty (). V následujícím příkladu mohou na stránku přistupovat pouze ověření uživatelé.

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

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

Důležité

Atribut použijte pouze u komponent, které byly dosaženy přes směrovač. Autorizace se provádí pouze jako aspekt směrování, nikoli pro podřízené komponenty vykreslené na stránce. Pokud chcete autorizovat zobrazení určitých částí na stránce, použijte místo toho komponentu AuthorizeView, která je popsaná v tématu ASP.NET Core Blazor ověřování a autorizace.

Atribut lze použít také pro všechny komponenty v aplikaci nebo podmnožinu komponent ve složce pomocí souboru (). Přidejte direktivu pro obor názvů s direktivou pro atribut:

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

Atribut také podporuje autorizaci na základě rolí nebo zásad. Pro autorizaci na základě role použijte parametr. V následujícím příkladu může uživatel přistupovat na stránku pouze v případě, že je s rolí Admin nebo Superuser:

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

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

Pro autorizaci na základě zásad použijte parametr. V následujícím příkladu může uživatel získat přístup ke stránce pouze v případě, že splňuje požadavky Over21zásady autorizace:

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

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

Pokud není zadán ani ani , použije výchozí zásadu.

  • Ověření (přihlášení) uživatelé mají oprávnění.
  • Neověření (odhlášení) uživatelé nejsou oprávněni.

Pokud uživatel nemá autorizaci a pokud aplikace neautorizovaný obsah s komponentou nepřizpůsobí, architektura automaticky zobrazí následující záložní zprávu:

Not authorized.

Další informace o ověřování a autorizaci Blazor najdete v tématu ASP.NET Core Blazor ověřování a autorizace.

Pomocí atributu [AllowAnonymous] povolte přístup neověřenými uživateli k jednotlivým akcím.

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

Informace o tom, jak vyžadovat ověřování pro všechny uživatele aplikace, najdete v tématu Vytvoření aplikace ASP.NET Core s uživatelskými daty chráněnými autorizací.

Dodatečné zdroje