Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan ASP.NET Core ve ASP.NET Identity kullanarak kullanıcı yönetimi konusunu ele alan kapsamlı bir eğitim içeriğidir.
- Eğitim, kullanıcı yönetimi için arayüz oluşturma, kullanıcı ekleme, silme, roller atama ve rol tabanlı yetkilendirme işlemleri üzerine odaklanmaktadır. Video, adım adım kullanıcı yönetimi sayfası oluşturma sürecini göstermekte, User Manager servisi kullanımı, view modelleri oluşturma, overposting ataklarından korunma ve yetkilendirme yapılandırması gibi konuları içermektedir.
- Eğitimde ayrıca partial view kullanarak oturum açmış kullanıcıları kontrol etme, admin rollerine sahip kullanıcıların kullanıcı yönetimi butonuna erişebilmesi için yapılandırma, URL saldırılarına karşı güvenlik önlemleri ve kullanıcıların email doğrulama işlemleri de anlatılmaktadır. Video, bir sonraki derste Web API'lerine geçileceği bilgisiyle sonlanmaktadır.
- 00:03ASP.NET Core'da Kullanıcı Yönetimi
- Önceki videodan kaldıkları yerden devam edecekler ve autose data annotation'u inceleyecekler.
- Kullanıcı yönetimi için manager'ları çekirdek verilerde programsal olarak kullanmışlar, ancak normal arayüzde de kullanmak istiyorlar.
- User manager ile yeni kullanıcı eklemek, roller atamak gibi işlemler arayüzden de yapılabilir.
- 02:04Controller Oluşturma
- Kullanıcı işlemleri için yeni bir controller oluşturuyorlar.
- Controller, e-ticaret uygulamasının bir parçası olarak oluşturuluyor.
- Kullanıcıları listelemek için index action oluşturuyorlar.
- 03:45User Manager Kullanımı
- Kullanıcılarla işlem yapmak için User Manager servisine ihtiyaç duyuyorlar.
- Bağımlı enjeksiyon yöntemi ile User Manager servisini controller'a enjekte ediyorlar.
- User Manager'ı sınıf düzeyinde kullanabilmek için yapıcı metotta tanımladıkları değişkeni sınıf düzeyine aktarıyorlar.
- 06:04Kullanıcıları Listeleme
- User Manager'dan kullanıcıları alarak bir liste değişkenine aktarıyorlar.
- Kullanıcı listesini view'e göndermek için view oluşturuyorlar.
- View'da model belirteci ile kullanıcı listesini alabilmek için List<AppUser> türü belirtiyorlar.
- 09:34View Tasarımı
- Kullanıcıları tablo formatında göstermek için Bootstrap tablo sınıfları kullanıyorlar.
- Tablonun başlığını oluşturuyorlar.
- Foreach döngüsü ile kullanıcı listesini dolaşarak her kullanıcı için tablo satırı oluşturuyorlar.
- Kullanıcıların e-posta ve açıklama bilgilerini tabloda gösteriyorlar.
- Tüm kullanıcılar başlığı için jumbotron sınıfı kullanarak bir başlık oluşturuyorlar.
- 15:47Kullanıcı İşlemleri ve Yetkilendirme
- Kullanıcı işlemleri sayfasında sistemde kayıtlı olan kullanıcılar listeleniyor ve bu sayfayı sadece admin kullanıcıları kullanabilmeli.
- Partial view, normal view'lerden farklı olarak tek başına çalışamayan, başka view'lerin içine gömülerek karmaşayı azaltan bir view türüdür.
- Sign manager kullanarak kullanıcının oturum açıp açmadığını kontrol edebilir ve oturum açmışsa logout butonu, açmamışsa login butonu gösterebiliriz.
- 18:52Admin Yetkilendirme
- Kullanıcı yönetimi butonunun her zaman görünmesini istemiyoruz, sadece oturum açmış kullanıcılar için görünmesi gerekiyor.
- Sign manager'ın SignedIn metodu ile kullanıcının oturum açıp açmadığını kontrol edebiliriz.
- Kullanıcı yönetimi butonunun sadece admin rolündeki kullanıcılar tarafından görünebilmesi için IsInRole metodu kullanılır.
- 22:29Güvenlik Açıkları ve Kontrol
- Sadece butonu gizlemek yetmez, arka plandan da erişimi kontrol etmek gerekir çünkü kullanıcılar URL üzerinden doğrudan erişebilir.
- URL saldırıları en temel güvenlik açıklarından biridir ve kullanıcıların butonu görememesine rağmen URL üzerinden erişim sağlayabilirler.
- Kullanıcı işlemleri kontrolüne [Authorize(Roles="Admin")] ekleyerek sadece admin rolündeki kullanıcıların erişimini sağlarız.
- 25:54Kullanıcı Ekleme İşlemi
- Kullanıcı işlemleri sayfasından yeni kullanıcı eklemek için bir buton eklenir.
- Create action oluşturulur ve kullanıcıya form gösterilir.
- Form tasarımı için e-mail adresi ve şifre alanları eklenir, formun asp-action özelliği "Create" olarak ayarlanır.
- 31:02Kullanıcı Oluşturma ve Güvenlik
- Kullanıcı bilgilerini alırken güvenlik açısından AppUser modelinin tüm alanlarını kullanmak yerine, sadece gerekli alanları kullanmak önemlidir.
- Overposting ataklarından korunmak için, kullanıcı modelinin tüm alanlarını kullanıcıya göstermek yerine sadece gerekli alanları göstermek gerekir.
- Kullanıcı modelinin kullanılmayan alanlarını doldurarak, örneğin onaylanma durumunu true olarak göndererek, kullanıcıyı onaylanmamış halde kaydetme gibi güvenlik açıklarına açılmaktadır.
- 32:31View Model Kullanımı
- Kullanıcı bilgilerini almak için veritabanında temsil edilmeyen, sadece veri aktarımına yarayan bir view model tanımlanabilir.
- View model, kullanıcıdan e-posta ve şifre gibi gerekli bilgileri almak için kullanılır.
- View model, formdan gelen verileri bind etmek için ASP.NET Core'da model binding özelliği ile kullanılır.
- 34:51Kullanıcı Oluşturma İşlemi
- Formdan gelen view model bilgileri, UserManager kullanılarak yeni bir kullanıcı olarak kaydedilir.
- UserManager'ın CreateAsync metodu kullanılarak, e-posta ve şifre bilgileri ile yeni bir kullanıcı oluşturulur.
- Kullanıcı eklendikten sonra Index action'a yönlendirilerek kullanıcıların listesine dönülür.
- 43:09Kullanıcı Silme İşlemi
- Kullanıcı listesinde her kullanıcıya ait bir silme butonu eklenir ve bu butonun tıklanması Delete action'a yönlendirir.
- Delete action'ında, silinecek kullanıcı için bir id parametresi tanımlanır.
- UserManager'ın FindByIdAsync metodu kullanılarak, verilen id'ye sahip kullanıcı bulunur ve DeleteAsync metodu ile silinir.
- 47:41Kullanıcı Yönetimi ve Silme İşlemi
- Admin oturum açtıktan sonra kullanıcı yönetimi sayfasında sil butonları görünüyor.
- Oturum açamayan veya e-mail doğrulaması gerçekleşmeyen kullanıcılar siliniyor.
- Silinen kullanıcıların oturum açamadığı kontrol ediliyor.
- 48:48Kullanıcı Rollerinin Görüntülenmesi
- Ürün kategori yönetiminde olduğu gibi kullanıcı rollerinin de detaylarını gösteren ve düzenlenebilen ekranlar tasarlanabilir.
- Kullanıcı listesinde sil butonunun yanında "rol yönetimi" butonu ekleniyor.
- Kullanıcının rollerini gösteren bir action oluşturuluyor.
- 50:59Kullanıcının Rollerini Listeleme
- Kullanıcının rollerini listelemek için önce kullanıcıyı bulup, user manager üzerinden get roll metodu kullanılarak rolleri alınıyor.
- Roller string listesi olarak getiriliyor ve view'e gönderiliyor.
- View'da kullanıcı adı ve rolleri ekrana yazdırılıyor.
- 1:04:06Yetkilendirme Konusu
- Bugün daha çok kimlik doğrulamaktan ziyade yetkilendirmeye odaklanıldı.
- Identity'de en popüler yetkilendirme şekillerinden biri rol tabanlı yetkilendirme.
- Kullanıcıları rol dediğimiz belli gruplarda tutup, aynı anda bir kullanıcının birden fazla rolü olabilir.
- Yetkilendirme için data annotationlardan yararlanılıyor ve view'lerde de kullanıcıın belirli bir role sahip olup olmadığı kontrol ediliyor.