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ı); }
protected virtual Kullanıcı KimliğiDoğrulananKullanıcıAlBilet(FormsAuthenticationTicket bilet) { if (bilet == null) { throw new ArgumentNullException("ticket"); } var kullanıcıAdıVeyaEmail = bilet.UserData; if (String.IsNullOrWhiteSpace(kullanıcıAdıVeyaEmail)) { return(null); } var kullanıcı = _kulanı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); return(kullanıcı); }
public virtual Kullanıcı KimliğiDoğrulananKullanıcı() { if (_önebellekKullanıcı != null) { return(_önebellekKullanıcı); } var authenticateResult = _httpContextAccessor.HttpContext.AuthenticateAsync(ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme).Result; if (!authenticateResult.Succeeded) { return(null); } Kullanıcı kullanıcı = null; if (_kullanıcıAyarları.KullanıcıAdlarıEtkin) { var usernameClaim = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Name && claim.Issuer.Equals(ÇerezYetkilendirmeVarsayılanları.ClaimsIssuer, StringComparison.InvariantCultureIgnoreCase)); if (usernameClaim != null) { kullanıcı = _kullanıcıServisi.KullanıcıAlKullanıcıAdı(usernameClaim.Value); } } else { var emailClaim = authenticateResult.Principal.FindFirst(claim => claim.Type == ClaimTypes.Email && claim.Issuer.Equals(ÇerezYetkilendirmeVarsayılanları.ClaimsIssuer, StringComparison.InvariantCultureIgnoreCase)); if (emailClaim != null) { kullanıcı = _kullanıcıServisi.KullanıcıAlEmail(emailClaim.Value); } } if (kullanıcı == null || !kullanıcı.Aktif || kullanıcı.GirişGerekli || kullanıcı.Silindi || !kullanıcı.IsRegistered()) { return(null); } _önebellekKullanıcı = kullanıcı; return(_önebellekKullanıcı); }
public virtual ActionResult Giriş(GirişModel model, string dönenUrl, bool captchaDoğrulandı) { /* * //CAPTCHA doğrula * if (_captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage && !captchaValid) * { * ModelState.AddModelError("", _captchaSettings.GetWrongCaptchaMessage(_localizationService)); * } */ if (ModelState.IsValid) { if (_kullanıcıAyarları.KullanıcıAdlarıEtkin && model.KullanıcıAdı != null) { model.KullanıcıAdı = model.KullanıcıAdı.Trim(); } var girişSonucu = _kullanıcıKayıtServisi.KullanıcıDoğrula( _kullanıcıAyarları.KullanıcıAdlarıEtkin ? model.KullanıcıAdı : model.Email, model.Şifre); switch (girişSonucu) { case KullanıcıGirişSonuçları.Başarılı: { var kullanıcı = _kullanıcıAyarları.KullanıcıAdlarıEtkin ? _kullanıcıServisi.KullanıcıAlSistemAdı(model.KullanıcıAdı) : _kullanıcıServisi.KullanıcıAlEmail(model.Email); //yeni kullanıcı olarak giriş yapıldı _kimlikDoğrulamaServisi.Giriş(kullanıcı, model.BeniHatırla); //olay _olayYayınlayıcı.Yayınla(new KullanıcıBağlandıOlayı(kullanıcı)); //log ekle //_kullanıcıAktiviteServisi.AktiviteEkle(kullanıcı, "GenelSite.Login", _localizationService.GetResource("ActivityLog.PublicStore.Login")); if (String.IsNullOrEmpty(dönenUrl) || !Url.IsLocalUrl(dönenUrl)) { return(RedirectToRoute("HomePage")); } return(Redirect(dönenUrl)); } case KullanıcıGirişSonuçları.KullanıcıMevcutDeğil: ModelState.AddModelError("", "Kullanıcı bulunamadı"); break; case KullanıcıGirişSonuçları.Silindi: ModelState.AddModelError("", "Kullanıcı silindi"); break; case KullanıcıGirişSonuçları.AktifDeğil: ModelState.AddModelError("", "Kullanıcı aktifleştirilmedi"); break; case KullanıcıGirişSonuçları.KayıtlıDeğil: ModelState.AddModelError("", "Kullanıcı henüz kayıtlı değil"); break; case KullanıcıGirişSonuçları.Kilitlendi: ModelState.AddModelError("", "Kullanıcı kilitlendi"); break; case KullanıcıGirişSonuçları.HatalıŞifre: default: ModelState.AddModelError("", "Hatalı şifre"); break; } } //If we got this far, something failed, redisplay form model = _kullanıcıModelFabrikası.GirişModelHazırla(); return(View(model)); }
protected virtual IActionResult RegisterNewUser(HariciYetkilendirmeParametreleri parameters, string returnUrl) { //check whether the specified email has been already registered if (_kullanıcıServisi.KullanıcıAlEmail(parameters.Email) != null) { var alreadyExistsError = "E-Mail adresi zaten mevcut"; return(ErrorAuthentication(new[] { alreadyExistsError }, returnUrl)); } var registrationIsApproved = _kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.Standart || (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.EmailDoğrulaması && !_hariciYetkilendirmeAyarları.EmailDoğrulamasıGerekli); var registrationRequest = new KullanıcıKayıtİsteği(_workContext.MevcutKullanıcı, parameters.Email, parameters.Email, GenelYardımcı.RastgeleOndalıklıÜret(20), ŞifreFormatı.Temiz, _siteContext.MevcutSite.Id, registrationIsApproved); var registrationResult = _kullanıcıKayıtServisi.KullanıcıKaydet(registrationRequest); if (!registrationResult.Başarılı) { return(ErrorAuthentication(registrationResult.Hatalar, returnUrl)); } _olayYayınlayıcı.Yayınla(new KullanıcıHariciOlarakOtomatikKaydedildi(_workContext.MevcutKullanıcı, parameters)); _olayYayınlayıcı.Yayınla(new KullanıcıKaydolduOlayı(_workContext.MevcutKullanıcı)); if (_kullanıcıAyarları.YeniKullanıcıBildirimi) { //_workflowMessageService.SendCustomerRegisteredNotificationMessage(_workContext.MevcutKullanıcı, _localizationSettings.DefaultAdminLanguageId); HariciHesabıKullanıcıylaİlişkilendir(_workContext.MevcutKullanıcı, parameters); } //yetkilendir if (registrationIsApproved) { _yetkilendirmeServisi.Giriş(_workContext.MevcutKullanıcı, false); //_workflowMessageService.SendCustomerWelcomeMessage(_workContext.MevcutKullanıcı, _workContext.WorkingLanguage.Id); return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.Standart })); } //registration is succeeded but isn't activated if (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.EmailDoğrulaması) { //email validation message _genelÖznitelikServisi.ÖznitelikKaydet(_workContext.MevcutKullanıcı, SistemKullanıcıÖznitelikAdları.HesapAktifleştirmeKodu, Guid.NewGuid().ToString()); //_workflowMessageService.SendCustomerEmailValidationMessage(_workContext.MevcutKullanıcı, _workContext.WorkingLanguage.Id); return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.EmailDoğrulaması })); } if (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.YöneticiOnayı) { return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.YöneticiOnayı })); } return(ErrorAuthentication(new[] { "Error on registration" }, returnUrl)); }