public ActionResult SetFirstlogin(string code) { try { SetFirstPasswordViewModel model = new SetFirstPasswordViewModel(); model.code = code; return(View(model)); } catch (Exception ex) { _log.Error(ex); return(View("Error")); } }
public async Task <ActionResult> SetFirstlogin(SetFirstPasswordViewModel model) { try { if (!ModelState.IsValid) { return(View(model)); } long UserId = model.code.DecryptID(); if (HasNewPasswordBeenUsedRecently(UserId, model.Password)) { //return false; ModelState.AddModelError("A previous password can't be used as your new password", "Kindly provide a new password this password "); return(View(model)); } else { // string code = await _userManager.GeneratePasswordResetTokenAsync(UserId); // var result = await _userManager.ResetPasswordAsync(UserId,code, model.Password); var result = await _userManager.ChangePasswordAsync(UserId, "Password", model.Password); if (result.Succeeded) { ApplicationUserPasswordHistory passwordModel = new ApplicationUserPasswordHistory(); passwordModel.UserId = UserId; passwordModel.DateCreated = DateTime.Now; passwordModel.HashPassword = ExtentionUtility.Encrypt(model.Password); _passwordCommand.Insert(passwordModel); _passwordCommand.SaveChanges(); ApplicationUser xmodel = _userManager.FindById(UserId); xmodel.IsFirstLogin = false; _userManager.Update(xmodel); return(RedirectToAction("SetPasswordConfirmation", "Account")); } AddErrors(result); } return(View(model)); } catch (Exception ex) { _log.Error(ex); return(View("Error")); } }