All CRUD
HTML-код
- Опубликовано: 19 сен 2024
- Ekşisözlük, Uludağ Sözlük veya İnci Sözlük. Bunun gibi bir sürü sözlük sitesi mevcut internet ortamında. Blazor, RabbitMQ, NET6, EF6 gibi teknolojileri ve CQRS, Onion Architecture, MediatR gibi yaklaşımları kullanarak biz de bir sözlük sitesi yapmaya başlayalım mı? Evet video serisinde, BlazorSözlük projesini hep birlikte tamamlayacağız.
Kişisel Hesabım: / @salihcantekin
#blazor #webassembly #blazortutorial
#blazor #docker #dotnet
Kanala Abone Olmayı Unutmayın!
To Subscribe: bit.ly/3kvj2vw
Github: github.com/sal...
Discord: / discord
Üyelik ayrıcalıkları için: / @techbuddytr
Perfect olmuş hocam. Teşekkürler.
Çok teşekkür ederim :)
abi emegine saglik
Teşekkürler
Emeklerine sağlık.
Çok teşekkür ederim :)
Emeğinize sağlık. Siteye Authorization veya Authentication ekleyecek misiniz? Authorization biraz saçma ama fayda olurdu. teşekkürler.
Teşekkürler. Sonraki videolarda Authentication eklendi sisteme ama dediğiniz gibi authorization bu sistemde pek faydalı olmazdı. Belki onun için başka videolar planlayabilirim.
Salih hocam eline sağlık, basecontroller'da GetUserId() metodu tanımlayıp, userId yoksa doğrudan bu metod içinde exception fırlatsaydık biraz daha işimiz kolaylaşmaz mıydı?
int userId = GetUserId();
User id varsa dön, yoksa exception fırlat. Dolayısıyla her endpointte bu kontrolü yapmak zorunda kalmayız diye düşünüyorum. Hatta ben bi tane de GetOptionalUserId() metodu oluşturup dönüş tipini de nullable yapıyorum, bazen kullanma ihtiyacı oluyor.
Evet WebApi tarafında işimiz kolaylaşırdı ama bu sefer de UI kısmında işimi zorlaşırdı. Bizim buradaki amacımız Command'ler içerisindeki UserId property sini doldurmakla UI kısmı uğraşmasın. Biz o dataya JWT token'dan erişelim istiyoruz çünkü bu daha sağlıklı olacak. Ancak her Command içindeki UserId yi de bu şekilde set edemeyiz çünkü bazen gelen istekte, başka bir USERID parametresi gelecek. Mesela başka bir kullanıcının Entry lerini çekerken bu Id lazım olacak.
Bu tarz bir kullanım bizim UI tarafındaki işimizi kolaylaştıracak aslında. UI tarafını da geliştiriyorken bu konuya özel olarak yine değiniriz.
@@TechBuddyTR aslında benim dediğim bu değil :) her endpoint içinde uzun uzadıya httpcontext'den userid'yi almak yerine, basecontroller'da bu işi halleden bir metod yazıp ordan alsak. Şöyle ki;
Basecontroller içine;
protected int GetUserId()
{
var result = HttpContextHelper.GetUserId(_httpContextAccessor);
if (string.IsNullOrEmpty(result)) throw new SecurityException(Messages.LoginRequired);
return int.Parse(result);
}
protected int? GetOptionalUserId()
{
var result = HttpContextHelper.GetUserId(_httpContextAccessor);
if (string.IsNullOrEmpty(result)) return null;
return int.Parse(result);
}
---------
Demek istediğim tam olarak bu.
33:00 dkdaki kısım için diyorum bu arada
@@abdulkadirkg Biz de BaseController içinden alıyoruz UserId yi zaten. Senin yaptığından farklı olarak exception fırlatmıyoruz. Özellikle yapıyoruz bunu da :)
@@TechBuddyTR exception fırlatılmamasının sebebi nedir peki?
Exception'ı bir tek JWT içinde userToken yoksa fırlatıyoruz ya. Zaten JWT ile gelmiyorlarsa bize Authentication Exception alacaklar. Dolayısı ile bir daha kontrol etmeye gerek kalmıyor UserId var mı yok mu diye. UserId yoksa zaten bizim controller'a gelemeyecekler biz Authorize attribute ekleyince controller'a veya Action lara