ASP.NET Core'da basit yetkilendirme

ASP.NET Core yetkilendirme, [Authorize] özniteliği ve çeşitli parametreleriyle denetlenmektedir. En temel biçiminde, [Authorize] özniteliğini Razor bileşenine, denetleyiciye, eyleme veya Razor Sayfasına uygulamak, bu bileşene erişimi kimliği doğrulanmış kullanıcılarla sınırlandırır.

Bu makale, bileşen örneklerini kullanır BlazorRazor ve yetkilendirme senaryolarına odaklanır Blazor . Razor Sayfalar ve MVC kılavuzu için bu makaleyi okuduktan sonra aşağıdaki kaynaklara bakın:

  • ASP.NET Core Sayfalar'da Basit Yetkilendirme
  • ASP.NET Core MVC içinde Basit yetkilendirme

[Authorize] özniteliği

Blazor uygulamalarında, .razor bir bileşen dosyasının en üstünde [Authorize] belirtin. Aşağıdaki örnekte yalnızca kimliği doğrulanmış kullanıcılar sayfaya erişebilir.

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

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

Önemli

Blazor yönlendiricisi aracılığıyla ulaşılan @page bileşenlerinde yalnızca [Authorize] özniteliğini kullanın. Yetkilendirme, yalnızca yönlendirmenin bir yönü olarak gerçekleştirilir ve bir sayfada işlenen alt bileşenler için değildir. Sayfadaki belirli bölümlerin görüntülenmesini yetkilendirmek için AuthorizeView bölümünde açıklanan Blazor bileşenini kullanın.

Özniteliği, [Authorize] bir uygulamadaki Razor tüm bileşenlere veya bir klasördeki Blazor bileşenlerin bir alt kümesine Razor bir içeri aktarma dosyası (_Imports.razor) kullanılarak da uygulanabilir. @attribute için bir [Authorize] yönergesiyle Microsoft.AspNetCore.Authorization ad alanı için bir @using yönergesi ekleyin:

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

[Authorize] özniteliği rol tabanlı veya ilke tabanlı yetkilendirmeyi de destekler. Rol tabanlı yetkilendirme için parametresini Roles kullanın. Aşağıdaki örnekte, kullanıcı sadece Admin veya Superuser rolündeyse sayfaya erişebilir.

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

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

İlke tabanlı yetkilendirme için parametresini Policy kullanın. Aşağıdaki örnekte, kullanıcı yalnızca yetkilendirme ilkesinin gereksinimlerini karşılıyorsa sayfaya erişebilir.

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

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

Ne Roles ne de Policy belirtilirse, [Authorize] varsayılan politikayı kullanır:

  • Kimliği doğrulanmış (oturum açmış) kullanıcılar yetkilendirilir.
  • Kimliği doğrulanmamış (oturum kapatılmış) kullanıcılar yetkisizdir.

Kullanıcı yetkilendirilmediğinde ve uygulama bileşenle Router yetkisiz içeriği özelleştirmediğinde çerçeve otomatik olarak aşağıdaki geri dönüş iletisini görüntüler:

Not authorized.

Blazor kimlik doğrulaması ve yetkilendirmesi hakkında daha fazla bilgi için bkz. ASP.NET Core Blazor kimlik doğrulaması ve yetkilendirme.

Kimliği doğrulanmamış kullanıcıların bireysel eylemlere erişim izni vermek için [AllowAnonymous] özniteliğini kullanın.

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

Tüm uygulama kullanıcıları için kimlik doğrulaması gerektirme hakkında bilgi için bkz. Yetkilendirmeyle korunan kullanıcı verileriyle ASP.NET Core uygulaması oluşturma.

Ek kaynaklar

  • ASP.NET Core Sayfalar'da Basit Yetkilendirme
  • ASP.NET Core MVC içinde Basit yetkilendirme