Mongo db Identity Kullanımı C# .Net Core
- 23 min okuma
Gerekli Olan Kütüphane
Yukarıda belirtilen kütüphane hem mongo db core ve mongo db driver kütüphanesini içermekte olup ayrıca identity sınıflarını da içinde içermektedir.
Böylelikle de bu kütüphane kendi başına hem veritabanı işlemleri hemde yetki ve auth işlemlerini gerçekleştirebilmektedir.
Kullanımı
Öncelikli olarak program.cs dosyamızda birkaç değişiklik yaomamız gerekmektedir. Entity identity ile pek bir farklılığı bulunmamaktadır.
builder.Services.AddIdentity<User, Role>().AddMongoDbStores<User, Role, string>(builder.Configuration["DatabaseConnection:Server"], builder.Configuration["DatabaseConnection:DatabaseName"]).AddDefaultTokenProviders();
yukarıdaki kod parçasında User ve role sınıfımızın yetki içinde kullanacğımızı addIdentity methodu ile belirtiyoruz. Mongo db veritabanında ise ayriyeten de Id sini veritabanımızda string bir tür ile tutacağımızı belirttikten sonra token kullanımı için providerlerimizi kullanması gerektiğini belirtiyoruz.
Yanda belirtilen kodda ise identity ayarlarımızı ve cookie ayarlarımızın nasıl olması gerektiğini yazıyoruz.
En kritik nokta ise eğer mvc için kullanıyorsanız SameStie ayarının strict olmasıdır. Strict olması cookienin sadece ilk oluşturulddupu yerde kullanılması içindir. Böylelikle de cookie çalınması gibi durumlarda o tarayıcıya has çalısacağı için yetkilendirme işlemleri başarısız olacaktır.
Yukarıda ise User nesnesini Identity nesnesinin özelliklerine sahib olabilmesi için MongoIdentityUser nesnesinden generic olarak miras almamız gerekmektedir. Geri kalan kullanım için ise UserManager RoleManager SıgnInManager sınıflarını dependency injection ile heryerde kullanabiliriz.
;