ASP.NET Core Kimliğini Anlama

Tamamlandı

Bu ünitede Kimlik mimarisini kavrarsınız.

ASP.NET Core Kimlik mimarisi

ASP.NET Core Identity, ASP.NET Core web kullanıcı arabirimine kullanıcı kaydı ve oturum açma özellikleri ekleyen bir üyelik sistemidir. Üyelik sistemi, hem kimlik doğrulaması hem de yetkilendirme özelliklerini işler. Kimlik doğrulaması, kim olduğunuzla ilgilidir. Yetkilendirme, neleri yapma izniniz olduğuyla ilgilidir. Bu nedenle kimlik doğrulaması, yetkilendirme için bir önkoşuldur.

Kimlik, yerel hesap oluşturmaya alternatif olarak Facebook ve Twitter gibi dış oturum açma sağlayıcılarını destekler. Kullanıcı oturumları, tanımlama bilgisi tabanlı kimlik doğrulaması kullanılarak korunur. Varsayılan olarak, oturum açma sırasında bir tanımlama bilgisi oluşturulur ve oturum kapatılırken yok edilir.

Üyelik verileri, seçtiğiniz bir veri deposu ve veri erişimi teknolojisi kullanılarak kalıcı hale getirilir. Varsayılan veri erişimi teknolojisi, Entity Framework (EF) Core adlı bir Nesne İlişkisel Eşleyicisi’dir (O/RM). Varsayılan veri deposu SQL Server’dır.

Temel alınan veritabanıyla etkileşime geçme işleminin karmaşası, EF Core tarafından soyutlanır. Bu nedenle, EF Core genellikle kendi veritabanı sağlayıcılarının tümünün Identity ile kullanılmasını mümkün kılar. Veritabanı sağlayıcıları SQL Server, SQLite ve diğer birçok veri deposu için kullanılabilir. Identity, seçtiğiniz veri erişimi teknolojisini kullanma esnekliğini de sunar. Dapper, popüler alternatiflerden biridir.

Aşağıdaki diyagram, bu modülde kullanılan Identity mimarisini gösterir:

Kimlik mimarisini gösteren diyagram.

Yukarıdaki diyagramda:

  • ASP.NET Core Razor Pages uygulaması, bu modülde Kimlik desteğinin eklendiği web kullanıcı arabirimini temsil eder.
  • Identity Manager katmanı, Microsoft.AspNetCore.Identity ad alanından kullanılan sınıfları içerir. Bu modülde açıkça kullanılan bu türden sınıflara örnek olarak SignInManager<TUser> ve UserManager<TUser> gösterilebilir.
  • EF Core Identity Deposu katmanı, Microsoft.AspNetCore.Identity.EntityFrameworkCore ad alanındaki sınıfları içerir. Bu modülde bu türden bir sınıfın açıkça kullanılmasına örnek olarak UserStore<TUser> verilebilir.
  • Veritabanı Sağlayıcısı, EF Core Sağlayıcısı’ndan SQL’yi kabul edip (görüntülenmemiştir) bunu yürüten, veritabanına özgü bir kitaplıktır.

EF Core, veritabanı şemasını uygulamanın veri modeliyle eşitlenmiş durumda tutmak üzere artımlı olarak güncelleştirmek için geçişler adlı bir özellik kullanır. İlk EF Core geçişi uygulandıktan sonra, destekleyen veritabanı tabloları oluşturulur. Aşağıdaki diyagramda, destekleyen tabloların şemaları gösterilir:

Kimlik veritabanı şemasının diyagramı.

Not

Yukarıdaki görüntüde veritabanındaki anahtarlar ve ilişkiler gösterilir. Anahtar bir tanedir ve sonsuzluk (yanlar 8) çok fazladır. Bir veritabanında bire bir, bire çok ve çoka çok ilişki türleri olabilir. Anahtarlar benzersizdir. Diyagramda bu birleştirmelerin nasıl oluşturulduğu ve ilişkileri gösterilir.

Özet

Bu ünitede ASP.NET Core Kimlik mimarisi hakkında bilgi edindi. Bir sonraki ünitede, mevcut bir uygulamaya varsayılan ASP.NET Core Kimlik uygulamasını ekleyeceksiniz.

Bilginizi ölçün

1.

Kimlik için varsayılan veri deposu nedir?