Beispiel #1
0
        public async Task <IActionResult> ChangePasswordConfirm(ChangePasswordViewModel model)
        {
            ViewBag.Message = "";
            //get user data
            var       sessionInfo = HttpContext.Session.GetString("LoginInfo");
            LoginInfo loginInfo   = JsonConvert.DeserializeObject <LoginInfo>(sessionInfo);

            SyUser user = DbContext.SyUser.Where(a => a.UserId == loginInfo.UserId).FirstOrDefault();

            if (user == null)
            {
                ModelState.AddModelError(string.Empty, "User " + loginInfo.UserName + " is not recognized.");
            }
            else if (user.IsActive == false)
            {
                ModelState.AddModelError(string.Empty, "User " + loginInfo.UserName + " is not active.");
            }
            else
            {
                string decPassword = EncryptHelper.ConvertToDecrypt(user.Password);
                if (model.OldPassword != decPassword)
                {
                    ModelState.AddModelError("OldPassword", "Old Password is wrong.");
                }
                if (model.NewPassword == model.OldPassword)
                {
                    ModelState.AddModelError("NewPassword", "New Password is same with Old Password.");
                }
                if (model.ConfirmPassword != model.NewPassword)
                {
                    ModelState.AddModelError("ConfirmPassword", "Confirm Password is different with New Password.");
                }
            }
            if (ModelState.IsValid)
            {
                user.Password = EncryptHelper.ConvertToEncrypt(model.NewPassword);
                user.EditDate = DateTime.Now;
                user.EditBy   = loginInfo.UserId;
                DbContext.SyUser.Update(user);
                await DbContext.SaveChangesAsync();

                //HttpContext.Session.Clear();
                //return RedirectToAction("Login", "Account");
                ViewBag.Message = "Your password has been changed.";
            }

            GetLoginInfo();
            GetMenu();
            return(View("ChangePassword", model));
        }