public async Task <IActionResult> Login(UserLoginVM model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var user = _accountBusiness.GetUser(model.Email, model.Password); #region Login Süreci if (user != null) { var claims = new List <Claim> { new Claim(ClaimTypes.Name, model.Email), new Claim(ClaimTypes.Locality, user.Language) }; var roles = user.UserRoles.Split(',').ToList(); foreach (var item in roles) { claims.Add(new Claim(ClaimTypes.Role, item)); } var userIdentity = new ClaimsIdentity(claims, "login"); ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity); await HttpContext.SignInAsync(principal); var serialised = JsonConvert.SerializeObject(user); HttpContext.Session.SetString("SessionUser", serialised); HttpContext.Session.SetString("ProjectCulture", user.Language); return(RedirectToLocal(returnUrl)); } else { var mailuser = _accountBusiness.GetUserByEmail(model.Email); if (mailuser != null) { Users selectedUser = _usersRepository.TableNoTracking.Where(i => i.Id == mailuser.Id).FirstOrDefault(); selectedUser.IncorrectLoginCount = mailuser.IncorrectLoginCount + 1; _usersRepository.Update(selectedUser); _uow.SaveChanges(); if (selectedUser.IncorrectLoginCount >= 5) { return(RedirectToAction("ForgotPassword", "Account")); } } ModelState.AddModelError("Email", "Hatalı Email veya Şifre"); return(View(model)); } #endregion } else if (model.Password == null) { var user = _accountBusiness.GetUserByEmail(model.Email); if (user != null && user.IsFirstLogin == true) { return(RedirectToAction("ForgotPassword", "Account")); } } return(View(model)); }