Asp.Net Identity - Kullanıcı Yönetim Sistemi (Üyelik Sistemi) Kullanımı

Microsoft Identity Nedir?

Web uygulamalarında ve web sitelerinde kullanıcı yönetimi sıkça ihtiyaç duyulan bir şeydir. Kullanıcıların kendi hesapları ile oturum açmaları, sistemde kendilerine izin verilen işlemleri yapabilmeleri, bunların kayıtlarının tutulması, yönetilmesi gibi işler önemli ve karmaşık işlerdir.

Ancak Visual Studio ile yukarıda bahsettiğimiz bir kullanıcı yönetim sistemini kurmak son derece kolaydır.

Web Forms Site seçeneği kullanarak oluşturulan web sitelerinde Identity sistemi hazır olarak bulunmaktadır. Yani sistemi kullanmayı bilmemiz yeterlidir.

Microsoft kullanıcı yönetimi için daha önce Membership sistemini kullanmaktaydı. Bu sistem geliştiriciler tarafından sevilmekteydi ancak kullanıcıların Facebook, Google gibi farklı hesaplarıyla oturum açabilmeleri konusunda eksikleri vardı. Microsoft'u Identity sistemini geliştirmeye iten en önemli nedenin bu olduğu söylenebilir.

Günümüzde Identity sisteminin kullanıldığı web sitelerinde kullanıcılar yerel bir hesap oluşturarak ya da Facebook, Twitter, Google gibi hesaplarıyla oturum açabilir ve güvenli şekilde işlem gerçekleştirebilirler.

Identity Sistemi Oluşturma ve Kullanma

Önceki konumuzda yeni bir Web Forms Sitesi oluşturulduğunda ortaya çıkan dosyalar ve projeye eklenen sistemler ile ilgili temel bilgiler verilmişti. Burada Identity sistemine değineceğiz.

Identity bir kullanıcı yönetim sistemi olduğuna göre kullanıcı bilgilerinin saklanacağı bir veritabanına ihtiyaç vardır. Kullanılan veritabanı Sql Server üzerinde çalışmaya ayarlıdır.

Siteyi ilk oluşturduğumuzda App_Data klasörüne bakacak olursak klasörün boş olduğunu görürüz. Siteyi çalıştırıp Account klasöründeki Register.aspx (örnek: localhost:52733/account/register) sayfasından ilk üye kaydını yaptığımızda App_Data klasörü içine veritabanı ve tablolar oluşturulacaktır.

Veritabanı ile ilgili bağlantı bilgileri web.config dosyasında, connectionStrings altında DefaultConnection ismiyle yazılmıştır. Oluşturulan veritabanı buradaki bilgilere göre oluşturulmuştur. Buradaki bilgileri değiştirerek oluşturulacak veritabanının konumu, adı, kullanıcı adı ve parola gibi bilgileri belirleyebiliriz.

Sitemizi yayınladığımızda kullanacağımız veritabanı bilgileri belli ise web.config dosyasındaki bağlantı bilgilerini bu bilgiler ile en baştan değiştirebilir ve kullanıcı yönetim sistemi için gerekli tabloların bu veritabanında oluşturulmasını sağlayabiliriz.

Şayet kullanacağımız veritabanı henüz belli değilse varsayılan bağlantı bilgileri ile sitemizi hazırlamaya devam edebiliriz. İleride bu veritabanını ya da içindeki tabloları sunucuya aktarabiliriz. Veya web.config dosyasındaki bağlantı bilgilerini yenisiyle değiştirip, tabloların yeni baştan oluşturulmasını sağlayabiliriz.

Identity Sisteminde veritabanında şu tablolar kullanılır:

  • _MigrationHistory: Sistemin oluşturulması ile ilgili bilgiler tutulur.
  • AspNetRoles: Sistemde kullanılacak roller burada tutulur. Roller sayesinde kullanıcılara farklı yetkiler verebilir, her rolün yapabileceği işlemleri belirleyebiliriz. (Authorization) Tanımlanacak her rolün bir adı ve id'si bulunur. Bu tabloya direk rol adı ve id'si girerek sisteme kullanıcı rolleri ekleyebiliriz.
  • AspNetUserClaims: Kullanıcıların oturum bilgilerinin tutulduğu tablodur.
  • AspNetUserLogins: Farklı sağlayıcılardan gelen bağlantı bilgileri bu tabloda tutulur.
  • AspNetUserRoles: Kullanıcıların hangi rollere sahip olduğu bu tabloda tutulur. UserId ve RoleId isminde iki alanı vardır. Buraya el ile veri girerek bir kullanıcının rolünü belirlemek istersek kullanıcılar tablosundan (AspNetUsers) kullanıcının id'sini, roller tablosundan ise rolün id'sini kopyalayarak bu tabloya yapıştırmamız yeterlidir.
  • AspNetUsers: Sisteme kaydolan kullanıcıların bilgileri bu tabloda tutulur. Kullanıcı adı, kullanıcı id'si, şifrelenmiş halde parola bilgileri vb...

Veritabanına el ile bilgi girebiliriz tabi ama bu işlemlerin web sayfalarından yapılabilmesi de şart.

Sitenin Account klasöründe temel kullanıcı işlemlerinin gerçekleştirilebildiği hazır sayfalar mevcuttur. Bu sayfalar;

  • Login.aspx: Oturum açma sayfasıdır. Kullanıcılar yetkileri olmayan bir kısma ulaşmaya çalıştıklarında da bu sayfaya yönlendirilirler. Sayfada giriş amaçlı bir form bulunmaktadır ve oturum açmak için gerekli kodlar cs dosyasında hazırdır.
  • Register.aspx: Kayıt olma sayfasıdır. Kayıt amaçlı bir form ve gerekli kodlar bulunmaktadır.
  • Manage.aspx: Kayıtlı kullanıcıların parola değiştirebilmelerinin sağlandığı sayfadır. Varsayılan şablonda oturum açan kullanıcı sağ üst köşedeki kullanıcı adına tıklarsa bu sayfaya yönlendirilir.
  • RegisterExternalLogin.aspx: Harici bir hesapla kayıt olma sayfasıdır. (Facebook, google vb...)

Bu sayfaları sitemizde olduğu gibi kullanabiliriz. Ancak bazı yerlerdeki ifadeleri Türkçe'ye çevirmemizde fayda olabilir.

Yukarıda hazır sayfalardan bahsettik. Kullanıcı işlemleri ile ilgili Asp.Net nesnelerini ise ileriki konularda bulabilirsiniz.

 

asp.net üyelik sistemi hazırlama, asp.net ile kullanıcı yönetim sistemi hazırlama, microsoft identity kullanımı, asp.net identity nedir nasıl kullanılır, asp.net kullanıcı ve rol yönetimi nasıl yapılır, asp.net ile kullanıcı hesapları oluşturma ve yönetme

KONU İLE İLGİLİ ÖRNEKLER

Bu konu ile ilgili örnek bulunmamaktadır.



YORUMLAR




11074  kez okundu.

Online Kullanıcı Sayısı 392



asp-net-kullanıcı-yönetim-sistemi-oluşturma