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.

Yetkilendirme meta verileri olmayan uç noktalar varsayılan ilkeyi kullanmaz. Bu tür uç noktalar, uygulama bir geri dönüş ilkesi yapılandırmadığı sürece yetkilendirme gerektirmez. Adlandırılmış, varsayılan ve geri dönüş ilkelerinin karşılaştırması için bkz. ASP.NET Core'de ilke tabanlı yetkilendirme.

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]

Çoğu uç noktanın kimlik doğrulaması gerektirdiği sunucu tarafı uygulamalar için bkz. Genel kullanıcı kimlik doğrulaması gerektirme.

Ek kaynaklar

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