public async Task <ActionResult> ForgotPasswordConfirmation(SecretQuestionModel model) { var token = ForgotPasswordCodeModel.Token; if (model.SecretAnswerHidden.Trim().ToLower() == model.SecretAnswer.Trim().ToLower()) { var newPassword = "******" + System.Web.Security.Membership.GeneratePassword(10, 4); var user = await UserManager.FindByNameAsync(model.Email); if (user == null) { // Don't reveal that the user does not exist return(RedirectToAction("ForgotPasswordConfirmation")); } //newPassword = "******";//comment when on live var result = await UserManager.ResetPasswordAsync(user.Id, token, newPassword); if (result.Succeeded) { //send email there... EmailHelper oHelper = new EmailHelper(user.Email, "Your password has been reset successfully.", "Your new temporary password is " + newPassword + " Please change your password after login."); oHelper.SendMessage(); return(RedirectToAction("ResetPasswordConfirmation", "Account")); } AddErrors(result); } else { ViewBag.ErrorMessage = "Your Answer does't match, please try again."; } //ModelState.AddModelError("", "Please enter valid answer!"); return(View("ForgotPasswordConfirmation", model)); }
public async Task <ActionResult> Questions(string email, string code) { var user = await UserManager.FindByNameAsync(email); ForgotPasswordCodeModel.Token = code; var objModel = new SecretQuestionModel(); objModel.Email = user.UserName; var roles = UserManager.GetRoles(user.Id); Random rnd = new Random(); int caseSwitch = rnd.Next(1, 4); if (roles.Contains("Patient")) { PatientRepository objRepo = new PatientRepository(); var resultAdd = objRepo.GetByUserId(user.Id); switch (caseSwitch) { case 1: objModel.SecretQuestion = resultAdd.secretQuestion1; objModel.SecretAnswerHidden = resultAdd.secretAnswer1; break; case 2: objModel.SecretQuestion = resultAdd.secretQuestion2; objModel.SecretAnswerHidden = resultAdd.secretAnswer2; break; default: objModel.SecretQuestion = resultAdd.secretQuestion3; objModel.SecretAnswerHidden = resultAdd.secretAnswer3; break; } if (objModel.SecretQuestion == null) { if (resultAdd.secretQuestion1 != null) { objModel.SecretQuestion = resultAdd.secretQuestion1; objModel.SecretAnswerHidden = resultAdd.secretAnswer1; } if (resultAdd.secretQuestion2 != null) { objModel.SecretQuestion = resultAdd.secretQuestion2; objModel.SecretAnswerHidden = resultAdd.secretAnswer2; } if (resultAdd.secretQuestion3 != null) { objModel.SecretQuestion = resultAdd.secretQuestion3; objModel.SecretAnswerHidden = resultAdd.secretAnswer3; } } } else if (roles.Contains("Doctor")) { DoctorRepository objRepo = new DoctorRepository(); var resultAdd = objRepo.GetByUserId(user.Id); switch (caseSwitch) { case 1: objModel.SecretQuestion = resultAdd.secretQuestion1; objModel.SecretAnswerHidden = resultAdd.secretAnswer1; break; case 2: objModel.SecretQuestion = resultAdd.secretQuestion2; objModel.SecretAnswerHidden = resultAdd.secretAnswer2; break; default: objModel.SecretQuestion = resultAdd.secretQuestion3; objModel.SecretAnswerHidden = resultAdd.secretAnswer3; break; } if (objModel.SecretQuestion == null) { if (resultAdd.secretQuestion1 != null) { objModel.SecretQuestion = resultAdd.secretQuestion1; objModel.SecretAnswerHidden = resultAdd.secretAnswer1; } if (resultAdd.secretQuestion2 != null) { objModel.SecretQuestion = resultAdd.secretQuestion2; objModel.SecretAnswerHidden = resultAdd.secretAnswer2; } if (resultAdd.secretQuestion3 != null) { objModel.SecretQuestion = resultAdd.secretQuestion3; objModel.SecretAnswerHidden = resultAdd.secretAnswer3; } } } if (objModel.SecretQuestion == null) { ViewBag.ErrorMessage = "Sorry! User does not setup his recovery secret questions."; } return(View("ForgotPasswordConfirmation", objModel)); }