Esempio n. 1
0
        public ActionResult ChangeSecurityQuestion([Bind(Include = "SecurityAnswer,SecurityQuestion")] SecurityQuestionViewModel suvm)
        {
            string emailAddress = Session["Username"].ToString();
            var    chkUser      = (from l in db.Users
                                   where l.UserEmail == emailAddress
                                   select l).FirstOrDefault();

            if (chkUser != null)
            {
                try
                {
                    var decriptPwd = PwdHashing.Encrypt(suvm.SecurityAnswer);
                    chkUser.SecurityAnswer     = decriptPwd;
                    chkUser.SecurityQuestionID = suvm.SecurityQuestion.Value;
                    db.SaveChanges();
                    ViewBag.DisplayMessage = "success";
                    ModelState.AddModelError("", "Your security answer reset was successful!");
                    LoadDropDownList();
                }
                catch (Exception)
                {
                    ViewBag.DisplayMessage = "Info";
                    ModelState.AddModelError("", "Security answer was not successful, please contact the admin!");
                    LoadDropDownList();
                }
            }
            return(View());
        }
        public async Task <IActionResult> Verification(SecurityQuestionViewModel model)
        {
            if (ModelState.IsValid)
            {
                AccountUser accountUser = await userManager.FindByEmailAsync(model.Email);

                if (accountUser != null)
                {
                    if (accountUser.SecurityQuestion == model.QuestionId && accountUser.Answer.ToLower() == model.Answer.ToLower())
                    {
                        TempData["UserId"] = accountUser.Id;
                        TempData["Email"]  = accountUser.Email;

                        string token = await userManager.GeneratePasswordResetTokenAsync(accountUser);

                        TempData["Token"] = token;

                        return(RedirectToAction("ResetPassword", "Account"));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Email Address or Security Question is wrong");
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Email Address or Security Question is wrong");
                }
            }
            model.SecurityQuestionsList = new SecurityQuestions().GetSecurityQuestion();

            return(View(model));
        }
        public async Task <IActionResult> UpdateSQ(EditProfile obj)
        {
            SecurityQuestionViewModel model = obj.SQVM;

            if (ModelState.IsValid)
            {
                AccountUser user = new AccountUser();
                //IF user is correct and inputs are correct proceed to update
                if (User.Identity.IsAuthenticated)
                {
                    user = await userManager.GetUserAsync(User);

                    if (user != null)
                    {
                        user.SecurityQuestion = model.QuestionId;
                        user.Answer           = model.Answer;

                        var res = await userManager.UpdateAsync(user);

                        if (res.Succeeded)
                        {
                            toastNotification.AddSuccessToastMessage("Security Question Update Successfully.");
                        }
                        //GIVE an error if something is wrong
                        else
                        {
                            toastNotification.AddSuccessToastMessage("Some issue to updating Security Question.");
                            ModelState.AddModelError(String.Empty, "Error");
                        }
                    }
                }
            }

            return(RedirectToAction("EditProfile"));
        }
        public async Task <IActionResult> SecurityQuestionsAsync(SecurityQuestionViewModel model)
        {
            if (ModelState.IsValid)
            {
                // get the current user
                var user = await _UserManager.FindByNameAsync(User.Identity.Name);

                user.SecurityQuestionOne = model.SecurityQuestionOne;
                user.SecurityQuestionTwo = model.SecurityQuestionTwo;
                user.SecurityAnswerOne   = model.SecurityAnswerOne;
                user.SecurityAnswerTwo   = model.SecurityAnswerTwo;

                // update the database
                var result = await _UserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    // TODO: show that the security questions were saved then redirect
                    return(RedirectToAction(nameof(Profile)));
                }

                foreach (IdentityError error in result.Errors)
                {
                    // these errors can be displayed in the web page by adding:

                    /* <div class="text-danger">
                     *      @Html.ValidationSummary()
                     * </div>
                     */
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(View("SecurityQuestions", model));
        }
 public SecurityQuestionPage(OnboardingViewModel ovm)
 {
     InitializeComponent();
     BindingContext = _vm = new SecurityQuestionViewModel(Navigation);
     Answer         = new List <QuestionAnswerModel>();
     _ovm           = ovm;
 }
        public async Task <IActionResult> UpdateSQ(EditProfile obj)
        {
            SecurityQuestionViewModel model = obj.SQVM;

            if (ModelState.IsValid)
            {
                AccountUser user = new AccountUser();

                user = await userManager.FindByIdAsync(model.UserId);

                if (user != null)
                {
                    user.SecurityQuestion = model.QuestionId;
                    user.Answer           = model.Answer;


                    var res = await userManager.UpdateAsync(user);

                    if (res.Succeeded)
                    {
                        toastNotification.AddSuccessToastMessage("Security Question Update successfully");
                    }
                    else
                    {
                        toastNotification.AddErrorToastMessage("Some issue to update Security Question ");
                        TempData["Error"] = "Error";
                    }
                }
            }
            return(RedirectToAction("EditUser", new RouteValueDictionary(
                                        new { controller = "Admin", action = "EditUser", UserId = model.UserId })));
        }
        /// <summary>
        /// ASSIGN security question
        /// </summary>
        /// <returns>view</returns>
        public IActionResult Verification()
        {
            SecurityQuestionViewModel model = new SecurityQuestionViewModel();

            model.SecurityQuestionsList = new SecurityQuestions().GetSecurityQuestion();

            return(View(model));
        }
Esempio n. 8
0
 public static SecurityQuestionModel ToSecurityQuestionModel(this SecurityQuestionViewModel securityQuestionViewModel)
 {
     return(new SecurityQuestionModel
     {
         Id = securityQuestionViewModel.Id,
         Question = securityQuestionViewModel.Question
     });
 }
        public async Task <IActionResult> SecurityQuestionsAsync()
        {
            var user = await _UserManager.FindByNameAsync(User.Identity.Name);

            var model = new SecurityQuestionViewModel
            {
                SecurityQuestionOne = user.SecurityQuestionOne,
                SecurityQuestionTwo = user.SecurityQuestionTwo,
                SecurityAnswerOne   = user.SecurityAnswerOne,
                SecurityAnswerTwo   = user.SecurityAnswerTwo
            };

            return(View("SecurityQuestions", model));
        }
        /// <summary>
        /// To the view model.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns></returns>
        public static SecurityQuestionViewModel ToViewModel(this SecurityQuestionModel model)
        {
            if (model == null)
            {
                return(null);
            }

            var entity = new SecurityQuestionViewModel
            {
                SecurityQuestionID = model.SecurityQuestionID,
                Question           = model.Question
            };

            return(entity);
        }
        /// <summary>
        /// To the model.
        /// </summary>
        /// <param name="entity">The entity.</param>
        /// <returns></returns>
        public static SecurityQuestionModel ToModel(this SecurityQuestionViewModel entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var model = new SecurityQuestionModel
            {
                SecurityQuestionID = entity.SecurityQuestionID,
                Question           = entity.Question
            };

            return(model);
        }
Esempio n. 12
0
        public async Task <ActionResult> VerifySecurityQuestion(SecurityQuestionViewModel model)
        {
            var user = await UserManager.FindByIdAsync(model.UserId);

            if (UserManager.VerifySecurityQuestion(user, model.SecurityAnswer))
            {
                // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                // Send an email with this link
                string code = await UserManager.GeneratePasswordResetTokenAsync(model.UserId);

                var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = model.UserId, code = code },
                                             protocol: Request.Url.Scheme);
                await UserManager.SendEmailAsync(model.UserId, "Reset Password",
                                                 "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>");

                return(RedirectToAction("ForgotPasswordConfirmation", "Account"));
            }
            ModelState.AddModelError(nameof(model.SecurityAnswer), "Answer is not correct!");
            model.SecurityAnswer = "";
            return(View(model));
        }
Esempio n. 13
0
        public ActionResult Create(SecurityQuestionViewModel data)

        {
            SecurityQuestion obj = new SecurityQuestion();

            if (ModelState.IsValid)
            {
                bool uniqueQuestion = _securityQuestionService.UniqueSecurityQuestion(data.question.TrimEnd());
                //verify the entered security question is exisists or not
                if (uniqueQuestion == true)
                {
                    //if security question is exists, the validation message will display on the view
                    TempData["addUniqueMessage"] = "Record is Exist, Please Enter a new security question";
                    return(RedirectToAction("Create", "SecurityQuestion"));
                }
                //if security question is not exists, creates new security question
                obj.question = data.question.TrimEnd();
                _securityQuestionService.InsertSecurityQuestion(obj);
                TempData["message"] = "Success ! You have created a new record";
                return(RedirectToAction("Index", "SecurityQuestion"));
            }

            return(View());
        }
 public RegisterViewModel()
 {
     securityQuestions = new SecurityQuestionViewModel();
     countryState      = new CountryStateViewModel();
 }