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 ve yetkilendirme senaryolarına odaklanır . 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

özniteliği

Uygulamalarda, bileşen dosyasının () en üstünde özniteliğini 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

özniteliğini yalnızca yönlendirici aracılığıyla ulaşılan bileşenlerde 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 Blazor bölümünde açıklanan bileşenini kullanın.

Özniteliği, bir dosya () kullanılarak bir uygulamadaki tüm bileşenlere veya klasördeki bileşenlerin bir alt kümesine de uygulanabilir. öznitelik için bir yönerge ile ad alanı için bir yönerge ekleyin.

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

özniteliği rol tabanlı veya ilke tabanlı yetkilendirmeyi de destekler. Rol tabanlı yetkilendirme için parametresini 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 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 ne de belirtilirse, 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 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