#39- Asp.NET Core 6 + Angular İle Mini E-Ticaret | Kullanıcı Girişi(Authentication) İşlemleri
Вставка
- Опубліковано 5 чер 2022
- Github : github.com/gncyyldz
#aspnetcore6 #angular #eticaret #aspnetcoreuygulama #onionarchitecture #angular #angular13 #authentication
Bu video Gençay Yıldız tarafından NGAkademi bünyesinde ücretsiz çekilmiştir.
Gençay Yıldız'ın Bloğu
www.gencayyildiz.com/blog/
Güncel Duyuru ve Bildiriler İçin Sosyal Medya Hesaplarımız
/ ngakademi.sosyal
/ ngakademi
/ ngakademii
Bana destek olmak için kanalıma üye olabilirsiniz:
/ gençay yıldız
Hocam samimiyetle söylüyorum sizin gibi anlatan yok. İzleyenlere çok büyük fayda sağlıyorsunuz. Teşekkür ederim emeğinize :)
Hocam emeğinize sağlık anlatımınız çok güzel
hocam her zamanki gibi çok değerli bilgileri, hoş anlatımınızla bizimle paylaştınız. Çok teşekkür ederim sayın hocam.
Email ile Authorize olma işleminde hata ile karşılaşıyorsanız =>
ServiceRegistration sınıfında AddIdentity 'e " options.User.RequireUniqueEmail = true; " şeklinde ekleme yapıp veritabanında aynı email adresine sahip kayıtların "Email" ve "NormalizedEmail" adreslerini değiştirmeniz gerekiyor. Bu şekilde sorununuz çözülecektir.
Teşekkürler hocam, Identity konusu güzelmiş
02.03.2024 uygulamalı izledim
30.01.2024 izledim
hocam kücük ufak bi sorum olucaktı size. Örnek veriyorum bir methodun içini dolduruyorsunuz ya, doldururken hep değişkenini o satırı bitirdikten sonra tanımlıyorsunuz mesela dk 42:00 . Bu sizin stilinizden dolayı mı her yazılımcının farklı yazım sekli oldugundan mı diye sormak istedim.
Bazen çağırdığın metodun ya da property'nin geriye ne döndürdüğünü bildiğin durumlarda direkt değişkeni tanımlayarak devamını getirebilirsin lakin eğitim çekerken ezbere kod yazmamak için, neyi neden ilgili türde bir referansa yahut değişkene atadığımı gösterebilmek için türünü bilsem dahi öncelikle metodu ya da property'i çağırıyor, ardından değişkeni tanımlıyorum.
Hocam global bir pagination'dan bahsetmiştim daha önceden bir videonuzun yorum kısmında. Ben kendimce bişeyler yazdım, paylaşmak istedim;
public class BaseController : ControllerBase
{
public PaginationFilter Pagination { get; set; } = new();
}
public class PaginationActionFilter : IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
// before
var pageNumber = context.HttpContext.Request.Query["PageNumber"];
var pageSize = context.HttpContext.Request.Query["PageSize"];
if (pageNumber.Count > 1) throw new InfoException("Multiple Page Number Query is Not Supported!");
if (pageSize.Count > 1) throw new InfoException("Multiple Page Size Query Not is Supported!");
if (!StringValues.IsNullOrEmpty(pageNumber) && !StringValues.IsNullOrEmpty(pageSize))
{
var controller = context.Controller as BaseController;
controller.Pagination.PageNumber = int.Parse(pageNumber[0]);
controller.Pagination.PageSize = int.Parse(pageSize[0]);
}
await next();
}
}
Program.cs
builder.Services.AddControllers(config => {
config.Filters.Add(new PaginationActionFilter());
});
Ellerinize sağlık.
Çok güzel kod. Eline sağlık. Şahsi fikrim ise, her istek için pagination talebi var mı diye kontrol etmek gereksiz performans kaybı.
@@husokanus kendi senaryomda bu şekilde kullanmak durumundayım çünkü hemen hemen bütün isteklerim pagination istiyor. Teşekkür ediyorum.
Giriş yaparken kullanıcı adı veya mail kullanılması kuralını Application katmanında yazdık.
1- Bu kurala iş kuralı diyebilir miyiz?
2- İş kuralları Application katmanında mı yazılır? Yada Onion architecture'da iş kurallarının yazıldığı tek bir business katmanı yok mudur?
İş kurallarını bu mimaride Application katmanına yazmak gerekiyor. Application katmanı klasik n-katmanlı mimaride business olarak kullanılan katmanın karşılığıdır denebilir.
Hocam ücretli canlı eğitim için mesaj attım ama geri dönüş olmadı sitenizde iletişim numarası eski mi acaba?
Çok mesaj geliyor. Şuanda ücretli eğitim olmadığı için geri dönüş yapmıyoruz :)
Sayın hocam,
Ders bittikten sonra kafama takılan bir soru oldu. Ben yazdığım bir api projesinde Authentication sistemi hazırlamıştım. Controllerımda bir tane endpoint vardı "Authenticate" isminde.
Bu endpoint [AllowAnonymus] idi yani herkese açıktı. Bu endpointe doğru username ve password ikilisi ile gelenlere token verip yolluyordum. Diğer tüm metotlarım [Authorize] ile işaretliydi.
Bearer ile benim onlara verdiğim token ile gelenlere açıktı sadece. Şimdi hocam soruyu soruyorum!
Bu benim bahsettiğim örnek Authorization mu Authentication mu?
Eğer benim yaptığım Authentication ise sizin yaptığınız login sistemi ne oluyor? Authentication'ın bir parçası mı oluyor? Yoksa benim yaptığım Authorization mudur?
Şimdi eğer benim yaptığım Authorization ise, ben hiç rolleme yapmadım? Rolleme işlemine Authorization demiyor muyuz biz?
Yoksa rol bazlı ve token bazlı diye iki ayrı Authorization çeşidi mi vardı? Bu durumda benim yaptığım işlem token bazlı Authorization muydu?
Daha ne yaptığımı bilmiyorum biraz kafam karıştı. Sizin dediğiniz gibi felsefesi tam oturmamış kafama galiba, hasbelkader yazmışım. Ufak bir aydınlama verebilirseniz müsait olduğunuzda şu garibe, çok makbule geçer
Akşam cevap yazacağım
@ Çok teşekkürler hocam
Senin örnekte "Authenticate" metodu adını icra ediyor ve authentication yapıyor. Diğer metotlarda [Authorize] attribute'ünün yaptığı iş ise yine ismiyle müsemma Authorization işlemi. Kullanıcıyı tanıyıp onaylayıp token vermen authentication. Herhangi bir endpoint için kullanıcıdan verdiğin token'ı isteyip, token içerisinde yetkisi var mı diye kontrol etmen ise authorization.