Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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á BlazorRazor příklady komponent a zaměřuje se na Blazor scénáře autorizace. Pokyny ke Razor stránkám a MVC najdete v následujících zdrojích informací po přečtení tohoto článku:
- Jednoduchá autorizace v ASP.NET Core Razor Pages
- Jednoduchá autorizace v ASP.NET Core MVC
atribut [Authorize]
V aplikacích Blazor zadejte atribut [Authorize] na začátku souboru komponenty Razor (.razor). 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é
Používejte atribut [Authorize] pouze u komponent @page, ke kterým se přistupuje přes směrovač Blazor. 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[Authorize] lze také použít pro všechny Razor komponenty v Blazor aplikaci nebo podmnožinu Razor komponent ve složce pomocí importového souboru (_Imports.razor). Přidejte direktivu @usingMicrosoft.AspNetCore.Authorization pro obor názvů s direktivou @attribute[Authorize] pro atribut:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
Atribut[Authorize] také podporuje autorizaci na základě rolí nebo zásad. Pro autorizaci na základě role použijte Roles 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 Policy 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 Roles ani Policy, [Authorize] 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.
Koncové body bez autorizačních metadat nepoužívají výchozí zásady. Tyto koncové body nevyžadují autorizaci, pokud aplikace nenakonfiguruje záložní zásadu. Porovnání pojmenovaných, výchozích a záložních zásad najdete v tématu Autorizace na základě zásad v ASP.NET Core.
Pokud uživatel nemá autorizaci a pokud aplikace neautorizovaný obsah s Router 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]
U aplikací na straně serveru, kde většina koncových bodů vyžaduje ověřování, najdete v tématu Vyžadování globálního ověřování uživatelů.
Dodatečné zdroje
- Jednoduchá autorizace v ASP.NET Core Razor Pages
- Jednoduchá autorizace v ASP.NET Core MVC