Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }