public ActionResult Password(newPassword form) { var user = Database.Session.Query <User>().FirstOrDefault(x => x.pseudo == User.Identity.Name); if (form.password == null) { form.password = ""; } if (!user.CheckPassword(form.password)) { ModelState.AddModelError("Mot de Passe", "Le mot de passe est incorrect"); } if (form.passwordConfirm != form.passwordNew) { ModelState.AddModelError("Mot de Passe", "Les deux mot de passe ne sont pas identique"); } if (form.passwordConfirm == "" || form.passwordNew == "" || form.password == "") { ModelState.AddModelError("Mot de Passe", "Tout les champs sont requis"); } if (!ModelState.IsValid) { return(View(form)); } user.SetPassword(form.passwordNew); Database.Session.Update(user); Database.Session.Flush(); FormsAuthentication.SignOut(); return(RedirectToRoute("login")); }
// if reset phase 01 pass then manager can reset password form this function public async Task <IActionResult> ResetPassword([FromBody] newPassword updatedData) { try { var updatedUser = await _repository.User.GetUserByUserName(updatedData.UserName); var data = Encoding.ASCII.GetBytes(updatedData.NewPassword); var sha1 = new SHA1CryptoServiceProvider(); var hashed = sha1.ComputeHash(data); updatedUser.PasswordHash = System.Text.Encoding.UTF8.GetString(hashed); _repository.User.ResetPassword(updatedUser); await _repository.Save(); return(StatusCode(201, "201 Updated")); } catch (Exception) { return(StatusCode(500, "Something Went wrong")); } }