Otorisasi sederhana dalam ASP.NET Core

Otorisasi dalam ASP.NET Core dikontrol dengan atribut [Authorize] dan berbagai parameternya. Dalam bentuk yang paling dasar, menerapkan atribut [Authorize] ke komponen Razor, pengontrol, tindakan, atau Halaman Razor, membatasi access komponen tersebut untuk pengguna yang diautentikasi.

Artikel ini menggunakan BlazorRazor contoh komponen dan berfokus pada Blazor skenario otorisasi. Untuk Razor panduan Halaman dan MVC, lihat sumber daya berikut setelah membaca artikel ini:

atribut [Authorize]

Dalam aplikasi Blazor, tentukan atribut [Authorize] di bagian atas file komponen Razor (.razor). Dalam contoh berikut, hanya pengguna terautentikasi yang dapat access halaman:

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

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

Penting

Hanya gunakan atribut [Authorize] pada komponen @page yang diakses melalui router Blazor. Otorisasi hanya dilakukan sebagai bagian dari perutean dan bukan untuk komponen anak yang ditampilkan dalam halaman. Untuk mengotorisasi tampilan bagian tertentu dalam halaman, gunakan komponen AuthorizeView sebagai gantinya, yang dijelaskan dalam ASP.NET Core Blazor autentikasi dan otorisasi.

atribut[Authorize] juga dapat diterapkan ke semua komponen Razor dalam aplikasi Blazor atau ke sebagian komponen Razor yang ada di folder menggunakan berkas impor (_Imports.razor). Tambahkan direktif @using untuk namespace Microsoft.AspNetCore.Authorization dengan direktif @attribute untuk atribut [Authorize]:

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

Atribut ini [Authorize] juga mendukung otorisasi berbasis peran atau berbasis kebijakan. Untuk otorisasi berbasis peran, gunakan Roles parameter . Dalam contoh berikut, pengguna hanya dapat mengakses halaman jika mereka berada dalam peran Admin atau Superuser.

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

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

Untuk otorisasi berbasis kebijakan, gunakan Policy parameter . Dalam contoh berikut, pengguna hanya dapat mengakses halaman jika mereka memenuhi persyaratan kebijakan otorisasi.

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

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

Jika tidak atau RolesPolicy ditentukan, [Authorize] gunakan kebijakan default:

  • Pengguna yang sudah masuk dan diautentikasi diberikan otorisasi.
  • Pengguna yang tidak diautentikasi (keluar) tidak sah.

Saat pengguna tidak diotorisasi dan jika aplikasi tidak menyesuaikan konten yang tidak sah dengan Router komponen, kerangka kerja secara otomatis menampilkan pesan fallback berikut:

Not authorized.

Untuk informasi selengkapnya tentang autentikasi dan otorisasi Blazor, lihat autentikasi dan otorisasi ASP.NET Core Blazor.

Gunakan atribut [AllowAnonymous] untuk memungkinkan access oleh pengguna yang tidak diautentikasi ke tindakan individual:

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

Untuk informasi tentang cara mewajibkan autentikasi untuk semua pengguna aplikasi, lihat Buat aplikasi ASP.NET Core dengan data pengguna yang dilindungi oleh otorisasi.

Sumber daya tambahan