Tüm Detaylarıyla AspNetCore.Identity Kütüphanesi : Hata Mesajlarının Özelleştirilmesi— Part 5

Mustafa Dikyar
2 min readOct 25, 2020

Herkese selamlar, bugün ele alacağımız konu yine bir devam yazısı olacak. Identity makale serimizin bu beşinci yazısında identity kütüphanesi ile hazır olarak gelen hata mesajlarının nasıl özelleştirileceği konusunu ele alacağız.

Yazımıza devam etmeden önce konu bütünlüğünü kaybetmemeniz adına

makalelerini okuyarak devam etmenizi öneririm.

Hata Mesajlarının Özelleştirilmesi

Burada da özel validasyonların oluşturulması konusunda yaptığımız geliştirmeler benzer geliştirmeler yapacağız.

İlk olarak CustomErrorDescriberValidator adında bir sınıf oluşturuyoruz. Bu sınıfımıza IdentityErrorDescriber interface’den bir kalıtım veriyoruz.

Bakalım burada da ne gibi özelleştirmeler yapabiliyoruz bunları inceleyerek devam edelim.

IdentityErrorDescriber sınıfı

IdentityErrorDescriber sınıfını incelediğimiz zaman metotlarımızın virtual olarak işaretlendiği dikkatinizi çekmiştir. Bunun üzerine çok rahatlıkla “Biz buradaki metotları ezerek kendi hata mesajlarımızı handle edebileceğimiz” yorumunu yapabiliriz.

Yine ilk makalemize bir atıfta bulunarak varsayılan hata mesajları nasıldı bir inceleyelim.

Varsayılan hata mesajları

Şimdi de buradaki varsayılanda ingilizce olarak gelen “Password must be at least 6 characters.” mesajını türkçeleştirelim.

Override deyip te gelen sanal metotlarımın listesini incelediğim zaman orada PasswordTooShort() adında bir metot olduğunu görüyorum. Tam da aradığımız metot kendisi oluyor. Şimdi bu metotu ezerek kendi mesajımız ile özelleştirelim.

Şimdi de gidip identity’e diyelim ki arkadaşım ben artık kendi IdentityErrorDescriber’ımı kullanmak istiyorum.

Yine en alt satırda görünen AddErrorDescriber içerisine kendi oluşuturduğumuz sınıfı vererek yapmamız gereken son işlemi de gerçekleştiriyoruz.

Özelleştirme işlemimizi yaptıktan sonra şimdi de test ederek yaptığımız geliştirmenin çalışıp çalışmadığına bir bakalım.

Test öncesinde startup.cs’e gidiyorum ve en az karakter sayımızı 10 olarak değiştiriyorum ve diğer düzenlemelerimiz yoruma alarak sonuçları görmek üzere projemizi çalıştırıyorum.

Ve yaptığımız geliştirmenin de gayet sağlıklı bir şekilde çalıştığını görebiliyoruz.

İhtiyaçlarımıza göre IdentityErrorDescriber içerisinde bulunan metotları ezerek rahatlıkla kendi özelleştirmelerimizi yapabileceğimizi de görmüş olduk.

Bu makalemiz de buraya kadar.

Bir sonraki makalemize Kullanıcı rollerinin yapılandırılması, Mail üzerinden kullanıcı doğrulaması gibi konular ile devam edeceğim.

Demo proje : https://github.com/mustafadikyar/MyUtilities

MyUtilities reposu altındaki Core.Identity projesi referans alınmıştır.

--

--