public async Task <IActionResult> EditPost(RegisterViewModel registerViewModel) { if (ModelState.IsValid) { var userToUpdate = await DbContext.Users.FirstOrDefaultAsync(s => s.UserId == int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier))); if (await TryUpdateModelAsync <DbUser>(userToUpdate, "", s => s.Login, s => s.Email, s => s.Password)) { try { userToUpdate.Password = HashProfile.GetSaltedHashData(userToUpdate.Password, userToUpdate.PasswordSalt); await DbContext.SaveChangesAsync(); CookieProfile.UpdateUserCookie(HttpContext, userToUpdate); return(RedirectToAction("Index", "Tasks")); } catch (DbUpdateException) { ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists, " + "see your system administrator."); } } } return(View(registerViewModel)); }
public async Task <IActionResult> Login(LoginViewModel loginViewModel) { if (!ModelState.IsValid) { return(View("Login", loginViewModel)); } DbUser user = await DbContext.Users.Where(s => s.Login == loginViewModel.Login).SingleOrDefaultAsync(); if (user == null || !HashProfile.ValidatePasswords(loginViewModel.Password, user.Password, user.PasswordSalt)) { ModelState.AddModelError("", "Wrong login or password"); return(View("Login", loginViewModel)); } if (!user.EmailConfirmed) { ModelState.AddModelError("", "Verify your email address"); return(View("Login", loginViewModel)); } CookieProfile.SignUserCookie(HttpContext, user); return(RedirectToAction("Index", "Tasks")); }