Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Autoryzacja w ASP.NET Core jest kontrolowana za pomocą atrybutu [Authorize] i jego różnych parametrów. W najprostszej formie, stosując atrybut [Authorize] do komponentu Razor, kontrolera, akcji lub Razor Strony, ogranicza dostęp do tego komponentu do uwierzytelnionych użytkowników.
W tym artykule użyto BlazorRazor przykładów składników i skupiono się na Blazor scenariuszach autoryzacji. Aby uzyskać Razor wskazówki dotyczące stron i wzorca MVC, zapoznaj się z następującymi zasobami po przeczytaniu tego artykułu:
- Prosta autoryzacja na stronach ASP.NET CoreRazor
- Prosta autoryzacja w ASP.NET Core MVC
[Authorize] atrybut
W aplikacjach Blazor określ atrybut [Authorize] na początku pliku składnika Razor (.razor). W tym przykładzie tylko uwierzytelnieni użytkownicy mogą mieć dostęp do strony.
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
You can only see this if you're signed in.
Ważna
Używaj tylko atrybutu [Authorize] w komponentach @page, do których uzyskuje się dostęp za pośrednictwem routera Blazor. Autoryzacja jest wykonywana tylko jako aspekt routingu, a nie dla składników podrzędnych renderowanych na stronie. Aby autoryzować wyświetlanie określonych części na stronie, użyj składnika AuthorizeView, który jest opisany w ASP.NET Core Blazor uwierzytelnianie i autoryzacja.
Atrybut[Authorize] można również zastosować do wszystkich Razor składników w Blazor aplikacji lub podzestawu składników Razor w folderze przy użyciu pliku importowania (_Imports.razor). Dodaj dyrektywę @using dla przestrzeni nazw Microsoft.AspNetCore.Authorization z dyrektywą @attribute dla [Authorize] atrybutu:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
Atrybut [Authorize] obsługuje również autoryzację opartą na rolach lub na podstawie zasad. W przypadku autoryzacji opartej na rolach użyj parametru Roles . W poniższym przykładzie użytkownik może uzyskać dostęp do strony tylko wtedy, gdy należy do roli Admin lub Superuser:
@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]
<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>
W przypadku autoryzacji opartej na zasadach użyj parametru Policy . W poniższym przykładzie użytkownik może access stronę tylko wtedy, gdy spełnia wymagania Over21 zasad autoryzacji:
@page "/"
@attribute [Authorize(Policy = "Over21")]
<p>You can only see this if you satisfy the 'Over21' policy.</p>
Jeśli ani Roles, ani Policy nie zostaną określone, [Authorize] korzysta z domyślnej zasady.
- Uwierzytelnieni (zalogowani) użytkownicy są autoryzowani.
- Użytkownicy nieuwierzytelnieni (wylogowani) nie są autoryzowani.
Gdy użytkownik nie jest autoryzowany i jeśli aplikacja nie dostosowuje nieautoryzowanej zawartości ze składnikiemRouter, platforma automatycznie wyświetla następujący komunikat zastępczy:
Not authorized.
Aby uzyskać więcej informacji na temat uwierzytelniania i autoryzacji Blazor, zobacz ASP.NET Core Blazor uwierzytelnianie i autoryzacja.
Użyj atrybutu [AllowAnonymous] aby umożliwić dostęp przez nieuwierzytelnionego użytkownika do poszczególnych działań:
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
Aby uzyskać informacje na temat wymagania uwierzytelniania dla wszystkich użytkowników aplikacji, zobacz Tworzenie aplikacji ASP.NET Core przy użyciu danych użytkownika chronionych przez autoryzację.
Dodatkowe zasoby
- Prosta autoryzacja na stronach ASP.NET CoreRazor
- Prosta autoryzacja w ASP.NET Core MVC