public virtual KullanıcıGirişSonuçları KullanıcıDoğrula(string kullanıcıAdıVeyaEmail, string şifre) { var kullanıcı = _kullanıcıAyarları.KullanıcıAdlarıEtkin ? _kullanıcıServisi.KullanıcıAlKullanıcıAdı(kullanıcıAdıVeyaEmail) : _kullanıcıServisi.KullanıcıAlEmail(kullanıcıAdıVeyaEmail); if (kullanıcı == null) { return(KullanıcıGirişSonuçları.KullanıcıMevcutDeğil); } if (kullanıcı.Silindi) { return(KullanıcıGirişSonuçları.Silindi); } if (!kullanıcı.Aktif) { return(KullanıcıGirişSonuçları.AktifDeğil); } //sadece kayıtlı olanlar girebilir if (!kullanıcı.IsRegistered()) { return(KullanıcıGirişSonuçları.KayıtlıDeğil); } //check whether a kullanıcı is locked out if (kullanıcı.ŞuTarihdenBeriGirişYapamıyor.HasValue && kullanıcı.ŞuTarihdenBeriGirişYapamıyor.Value > DateTime.UtcNow) { return(KullanıcıGirişSonuçları.Kilitlendi); } if (!ŞifreUyuşturması(_kullanıcıServisi.MevcutŞifreAl(kullanıcı.Id), şifre)) { //yanlış şifre kullanıcı.HatalıGirişSayısı++; if (_kullanıcıAyarları.HatalıŞifreDenemesi > 0 && kullanıcı.HatalıGirişSayısı >= _kullanıcıAyarları.HatalıŞifreDenemesi) { //kilitle kullanıcı.ŞuTarihdenBeriGirişYapamıyor = DateTime.UtcNow.AddMinutes(_kullanıcıAyarları.HatalıŞifredeKilitDakikası); //sayacı sıfırla kullanıcı.HatalıGirişSayısı = 0; } _kullanıcıServisi.KullanıcıGüncelle(kullanıcı); return(KullanıcıGirişSonuçları.HatalıŞifre); } //giriş detaylarını güncelle kullanıcı.HatalıGirişSayısı = 0; kullanıcı.ŞuTarihdenBeriGirişYapamıyor = null; kullanıcı.GirişGerekli = false; kullanıcı.SonGirişTarihi = DateTime.UtcNow; _kullanıcıServisi.KullanıcıGüncelle(kullanıcı); return(KullanıcıGirişSonuçları.Başarılı); }