コード例 #1
0
        public async Task <IActionResult> UpdatePassword(UpdatePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("_UpdatePassword", model));
            }
            if (model.NewPassword != model.ConfirmPassword)
            {
                ModelState.AddModelError("ConfirmPassword", "Must match new password");
            }

            var result = await _identityService.UpdatePassword(model.UserId, model.OldPassword, model.NewPassword);

            if (result.Succeeded)
            {
                return(new EmptyResult());
            }

            foreach (var error in result.Errors)
            {
                ModelState.AddModelError(string.Empty, error.Description);
            }

            return(PartialView("_UpdatePassword", model));
        }
コード例 #2
0
        /// <summary>
        /// updates password
        /// </summary>
        /// <param name="pwd"> Update Password Model </param>
        /// <returns> true or false </returns>
        public bool UpdatePassword(UpdatePasswordModel pwd)
        {
            using (var _ctx = new ChinmayaEntities())
            {
                var userEmail = _ctx.Users.Where(r => r.Email == pwd.Email && r.Password == pwd.OldPassword).FirstOrDefault();

                if (userEmail == null)
                {
                    return(false);
                }

                else if (userEmail != null)
                {
                    userEmail.Password = pwd.NewPassword;
                }

                try
                {
                    _ctx.Entry(userEmail).State = EntityState.Modified;
                    _ctx.SaveChanges();
                    return(true);
                }
                catch
                {
                    throw;
                }
            }
        }
コード例 #3
0
        public async Task <ActionResult> ChangePassword(UpdatePasswordModel Info)
        {
            ToastModel tm   = new ToastModel();
            string     role = await _common.GetUserRoleName(User.Identity.Name);

            if (ModelState.IsValid)
            {
                UpdatePasswordModel passwordModel = new UpdatePasswordModel();
                passwordModel.Email = User.Identity.Name;
                EncryptDecrypt objEncryptDecrypt = new EncryptDecrypt();
                passwordModel.OldPassword = objEncryptDecrypt.Encrypt(Info.OldPassword, WebConfigurationManager.AppSettings["ServiceAccountPassword"]);
                EncryptDecrypt objEncryptDecrypt1 = new EncryptDecrypt();
                passwordModel.NewPassword = objEncryptDecrypt.Encrypt(Info.NewPassword, WebConfigurationManager.AppSettings["ServiceAccountPassword"]);
                HttpResponseMessage userResponseMessage = await Utility.GetObject("/api/User/UpdatePassword", passwordModel, true);

                bool status = await Utility.DeserializeObject <bool>(userResponseMessage);

                if (status == true)
                {
                    tm.IsSuccess = true;
                    tm.Message   = "Password updated successfully";
                }
                else
                {
                    tm.IsSuccess = false;
                    tm.Message   = "Failed to update Password"; //Old password Does not match
                }
                return(Json(tm));
            }
            return(PartialView("_ChangePassword"));
        }
コード例 #4
0
        public async Task <ActionResult> ChangePassword(UpdatePasswordModel Info, string nextBtn)
        {
            ToastModel tm = new ToastModel();

            if (nextBtn != null)
            {
                if (ModelState.IsValid)
                {
                    UpdatePasswordModel passwordModel = new UpdatePasswordModel();
                    passwordModel.Email = User.Identity.Name;
                    EncryptDecrypt objEncryptDecrypt = new EncryptDecrypt();
                    passwordModel.OldPassword = objEncryptDecrypt.Encrypt(Info.OldPassword, WebConfigurationManager.AppSettings["ServiceAccountPassword"]);
                    EncryptDecrypt objEncryptDecrypt1 = new EncryptDecrypt();
                    passwordModel.NewPassword = objEncryptDecrypt.Encrypt(Info.NewPassword, WebConfigurationManager.AppSettings["ServiceAccountPassword"]);
                    HttpResponseMessage userResponseMessage = await Utility.GetObject("/api/User/UpdatePassword", passwordModel, true);

                    bool status = await Utility.DeserializeObject <bool>(userResponseMessage);

                    if (status == true)
                    {
                        tm.IsSuccess = true;
                        tm.Message   = "Password updated successfully";
                    }
                    else
                    {
                        tm.IsSuccess = false;
                        tm.Message   = "Password not updated";
                    }
                    return(Json(tm));
                }
            }
            return(RedirectToAction("MyAccount", "Account"));
        }
コード例 #5
0
        public void UpdateUserPassword_InvalidPasswordModel_ExpectArgumentException(int id, string oldPassword, string newPassword, string errorExpected)
        {
            // arrange
            User user = new User()
            {
                ID       = id,
                Username = "******",
                UserRole = "user"
            };

            UpdatePasswordModel model = new UpdatePasswordModel()
            {
                OldPassword = oldPassword,
                NewPassword = newPassword
            };

            userDatabase.Add(user.ID, user);


            UserService service = new UserService(repoMock.Object, authMock.Object, validatorMock.Object);

            // act + assert
            var ex = Assert.Throws <ArgumentException>(() => service.UpdatePassword(id, model));

            Assert.Equal(errorExpected, ex.Message);
            validatorMock.Verify(validator => validator.ValidateCreateUser(It.Is <string>(un => un == user.Username), It.Is <string>(pw => pw == newPassword), It.Is <string>(ur => ur == user.UserRole)), Times.Never);
            authMock.Verify(validator => validator.ValidateLogin(It.Is <User>(u => u == user), It.IsAny <LoginInputModel>()), Times.Never);
            repoMock.Verify(repo => repo.UpdateUser(It.Is <User>(u => u == user)), Times.Never);
        }
コード例 #6
0
        public async Task <ActionResult> UpdatePassword(UpdatePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(PartialView("_UpdatePassword", new UpdatePasswordModel()));
            }

            if (!await IsSettingsUnlocked())
            {
                ModelState.AddModelError("Error", Resources.User.securityUnlockTokenExpiredError);
                return(PartialView("_UpdatePassword", new UpdatePasswordModel()));
            }

            var result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("Error", error);
                }

                return(PartialView("_UpdatePassword", new UpdatePasswordModel()));
            }

            await UserManager.UpdateSecurityStampAsync(User.Identity.GetUserId());

            ModelState.AddModelError("Success", Resources.User.securityPasswordUpdatedMessage);
            return(PartialView("_UpdatePassword", new UpdatePasswordModel()));
        }
コード例 #7
0
        public async Task <Response> UpdatePasswordAsync(UpdatePasswordModel model)
        {
            Uri uri = new Uri(string.Format(Constants.UpdateUserPassUrl, string.Empty));

            try
            {
                string        json    = JsonSerializer.Serialize <UpdatePasswordModel>(model, serializerOptions);
                StringContent content = new StringContent(json, Encoding.UTF8, "application/json");
                client.DefaultRequestHeaders.Add("Authorization", $"Bearer {this.BearerToken}");

                HttpResponseMessage response = null;
                response = await client.PatchAsync(uri, content);

                string jsonresponse = await response.Content.ReadAsStringAsync();

                Response response2 = JsonSerializer.Deserialize <Response>(jsonresponse, serializerOptions);

                if (response.IsSuccessStatusCode)
                {
                    Debug.WriteLine(@"\user password successfully saved.");
                }
                return(response2);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@"\tERROR {0}", ex.Message);
                return(new Response()
                {
                    Status = Constants.Status.Error, Message = Constants.APIMessages.ErrorOnUpdate
                });
            }
        }
コード例 #8
0
ファイル: AccountController.cs プロジェクト: jfreund91/GitFit
        public IActionResult ChangePassword(UpdatePasswordModel model)
        {
            // Assume the user is not authorized
            IActionResult result = Unauthorized();

            // Get the user by username
            var user = userDao.GetUser(model.Username);

            // If we found a user and the password has matches
            if (user != null && passwordHasher.VerifyHashMatch(user.Password, model.Password, user.Salt))
            {
                // Update the password to the new password

                // Generate a password hash
                var passwordHash = passwordHasher.ComputeHash(model.NewPassword);

                // Create a user object
                var userUpdated = new User {
                    Password = passwordHash.Password, Salt = passwordHash.Salt, Role = user.Role, Username = model.Username, Id = user.Id
                };

                // Update the password and the salt
                userDao.UpdateUser(userUpdated);

                // Generate an authentication token
                var token = tokenGenerator.GenerateToken(user.Username, user.Role);

                // Switch to 200 OK
                result = Ok(token);
            }

            return(result);
        }
コード例 #9
0
        public void UpdateUserPassword_ValidPasswordModel(int id, string oldPassword, string newPassword)
        {
            // arrange
            User user = new User()
            {
                ID       = id,
                Username = "******",
                UserRole = "user"
            };

            UpdatePasswordModel model = new UpdatePasswordModel()
            {
                OldPassword = oldPassword,
                NewPassword = newPassword
            };

            userDatabase.Add(user.ID, user);


            UserService service = new UserService(repoMock.Object, authMock.Object, validatorMock.Object);

            // act + assert
            service.UpdatePassword(id, model);

            validatorMock.Verify(validator => validator.ValidateCreateUser(It.Is <string>(un => un == user.Username), It.Is <string>(pw => pw == newPassword), It.Is <string>(ur => ur == user.UserRole)), Times.Once);
            authMock.Verify(validator => validator.ValidateLogin(It.Is <User>(u => u == user), It.IsAny <LoginInputModel>()), Times.Once);
            repoMock.Verify(repo => repo.UpdateUser(It.Is <User>(u => u == user)), Times.Once);
        }
コード例 #10
0
        public async Task <IActionResult> UpdatePassword([FromBody] UpdatePasswordModel model)
        {
            var user = await userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                return(NotFound());
            }
            else if (await userManager.CheckPasswordAsync(user, model.Password))
            {
                var result = await userManager.ChangePasswordAsync(user, model.Password, model.NewPassword);

                if (!result.Succeeded)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response {
                        Status = Status.Error, Message = APIMessages.ErrorOnPasswordChange
                    }));
                }

                return(Ok(new Response {
                    Status = Status.Success, Message = APIMessages.Success
                }));
            }
            return(StatusCode(StatusCodes.Status500InternalServerError, new Response {
                Status = Status.Error, Message = APIMessages.ErrorOnPasswordCheck
            }));
        }
コード例 #11
0
        public async Task <IActionResult> ChangeNewPassword(UpdatePasswordModel request)
        {
            if (ModelState.IsValid is false)
            {
                return(PartialView("_ChangePassword"));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var changePasswordResult = await _userManager.ChangePasswordAsync(user, request.OldPassword, request.NewPassword);

            if (changePasswordResult.Succeeded is false)
            {
                foreach (var error in changePasswordResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }

                return(PartialView("_ChangePassword"));
            }

            await _signInManager.RefreshSignInAsync(user);

            var url = Url.Action("Index", "Dentist");

            return(Json(new { success = true, url }));
        }
コード例 #12
0
        public eErrors CheckPasswordValidation(UpdatePasswordModel i_Model)
        {
            eErrors error = eErrors.None;

            try
            {
                using (MyDiveEntities MyDiveDB = new MyDiveEntities())
                {
                    ObjectResult <string> serverResult = MyDiveDB.stp_GetUserPassword(i_Model.UserId);
                    List <string>         userPass     = serverResult.ToList();
                    if (userPass.Count > 0)
                    {
                        if (!userPass[0].Equals(i_Model.OldPassword))
                        {
                            error = eErrors.PasswordAreNotEqual;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Instance.Notify(ex.StackTrace, eLogType.Error, JsonConvert.SerializeObject(i_Model));
            }

            return(error);
        }
コード例 #13
0
        public async Task <IActionResult> UpdatePassword(int id, UpdatePasswordModel model)
        {
            if (id != model.Id)
            {
                return(BadRequest("Something went wrong. There was an inconsistency in the data."));
            }

            try
            {
                var user = await _userRepo.FindAsync(id);

                user.Password = model.Password;

                await _userRepo.UpdateAsync(user);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #14
0
        public void UpdateUserPassword_WhenPreviousPasswordDoesNotMatchInRecords_ReturnIncorrectPasswordError()
        {
            UpdatePasswordModel input = new UpdatePasswordModel()
            {
                UserName         = "******",
                NewPassword      = "******", //password1
                PreviousPassword = "******"  //password
            };

            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();
            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();

            user.Setup(x => x.GetUser(input.UserName)).Returns(new User()
            {
                UserName     = "******",
                UserPassword = "******"
            });

            ILoginBusinessRules app = new LoginBusinessRules(user.Object, timeIn.Object, timeOut.Object);

            var output = app.UpdateUserPassword(input);

            Assert.AreEqual("Previous password does not match.", output);
        }
コード例 #15
0
        public void UpdateUserPassword_WhenInputsAreCorrect_ReturnsQuerySuccessMessage()
        {
            UpdatePasswordModel input = new UpdatePasswordModel()
            {
                UserName         = "******",
                NewPassword      = "******", //password1
                PreviousPassword = "******"   //password
            };

            Mock <IUserDataAccess>         user    = new Mock <IUserDataAccess>();
            Mock <IDailyTimeInDataAccess>  timeIn  = new Mock <IDailyTimeInDataAccess>();
            Mock <IDailyTimeOutDataAccess> timeOut = new Mock <IDailyTimeOutDataAccess>();

            user.Setup(x => x.UpdatePassword(10000, It.IsAny <string>())).Returns("User record updated.");
            user.Setup(x => x.GetUser(input.UserName)).Returns(new User()
            {
                UserKey      = 10000,
                UserName     = "******",
                UserPassword = "******"
            });

            ILoginBusinessRules app = new LoginBusinessRules(user.Object, timeIn.Object, timeOut.Object);

            var output = app.UpdateUserPassword(input);

            Assert.AreEqual("User record updated.", output);
        }
コード例 #16
0
ファイル: ManageController.cs プロジェクト: detmach/Teknik
        public async Task <IActionResult> UpdatePassword(UpdatePasswordModel model)
        {
            if (string.IsNullOrEmpty(model.Username))
            {
                return(new JsonResult(new { success = false, message = "Username is required" }));
            }
            if (string.IsNullOrEmpty(model.CurrentPassword))
            {
                return(new JsonResult(new { success = false, message = "Current Password is required" }));
            }
            if (string.IsNullOrEmpty(model.NewPassword))
            {
                return(new JsonResult(new { success = false, message = "New Password is required" }));
            }

            var foundUser = await _userManager.FindByNameAsync(model.Username);

            if (foundUser != null)
            {
                var result = await _userManager.ChangePasswordAsync(foundUser, model.CurrentPassword, model.NewPassword);

                if (result.Succeeded)
                {
                    return(new JsonResult(new { success = true }));
                }
                else
                {
                    return(new JsonResult(new { success = false, message = "Unable to update password.", identityErrors = result.Errors }));
                }
            }

            return(new JsonResult(new { success = false, message = "User does not exist." }));
        }
コード例 #17
0
        public async Task <IActionResult> PasswordReset([FromBody] UpdatePasswordModel model)
        {
            if (!model.Key.HasValue || string.IsNullOrEmpty(model.Password))
            {
                return(BadRequest());
            }

            await _context.CleanPasswordResets();

            var reset = await _context.PasswordResets.FirstOrDefaultAsync(pr => pr.Key.Equals(model.Key.Value));

            if (reset == null || reset.ExpiryDate < DateTime.UtcNow)
            {
                return(NotFound());
            }

            try
            {
                await _userService.UpdatePassword(reset.RegisteredUserId, model.Password);
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }

            return(NoContent());
        }
コード例 #18
0
ファイル: HomeController.cs プロジェクト: xiaopohou/Snai.CMS
        public IActionResult UpdatePassword()
        {
            //展示页面
            if (!Request.Method.ToUpper().Equals("POST", StringComparison.OrdinalIgnoreCase) || !Request.HasFormContentType)
            {
                // 权限和菜单
                UpdatePasswordModel model = new UpdatePasswordModel();
                var layoutModel           = this.GetLayoutModel();
                if (layoutModel != null)
                {
                    layoutModel.ToT(ref model);
                }

                return(View(model));
            }
            else
            {
                //修改密码
                var msg = new Message(10, "修改密码失败!");

                string oldPassword = Request.Form["oldPassword"];
                string password    = Request.Form["password"];
                string rePassword  = Request.Form["rePassword"];

                var adminToken = CMSAdminCookie.GetAdiminCookie();
                var admin      = CMSAdminBO.GetAdminByUserName(adminToken.UserName);
                if (admin != null || admin.ID > 0)
                {
                    msg = CMSAdminBO.UpdatePasswordByID(admin.ID, oldPassword, password, rePassword);
                }

                return(new JsonResult(msg));
            }
        }
コード例 #19
0
        public void UpdateUserPassword_NotStoredUser_ExpectArgumentException()
        {
            // arrange
            User user = new User()
            {
                ID       = 1,
                Username = "******",
                UserRole = "user"
            };

            UpdatePasswordModel model = new UpdatePasswordModel()
            {
                OldPassword = "******",
                NewPassword = "******"
            };

            UserService service = new UserService(repoMock.Object, authMock.Object, validatorMock.Object);

            // act + assert
            var ex = Assert.Throws <ArgumentException>(() => service.UpdatePassword(user.ID, model));

            Assert.Equal("User with such ID does not exist", ex.Message);

            validatorMock.Verify(validator => validator.ValidateCreateUser(It.Is <string>(un => un == user.Username), It.Is <string>(pw => pw == model.NewPassword), It.Is <string>(ur => ur == user.UserRole)), Times.Never);
            repoMock.Verify(repo => repo.GetUserByID(It.Is <int>(ID => ID == user.ID)), Times.Once);
            authMock.Verify(validator => validator.ValidateLogin(It.Is <User>(u => u == user), It.IsAny <LoginInputModel>()), Times.Never);
            repoMock.Verify(repo => repo.UpdateUser(It.Is <User>(u => u == user)), Times.Never);
        }
コード例 #20
0
        public ApiResponse <bool> UpdatePassowrd(UpdatePasswordModel model)
        {
            if (model == null)
            {
                throw new Exception("The request body cant't be null.");
            }

            //旧密码
            if (string.IsNullOrEmpty(model.Password))
            {
                throw new Exception("Invalid old password.");
            }

            //新密码
            if (string.IsNullOrEmpty(model.NewPassword))
            {
                throw new Exception("Invalid new password.");
            }

            //加密密码
            model.Password    = Cryptology.Encrypt(model.Password);
            model.NewPassword = Cryptology.Encrypt(model.NewPassword);

            //更新密码
            return(new ApiResponse <bool>
            {
                Result = this.UserService.UpdatePassowrd(this.Token, model)
            });
        }
コード例 #21
0
        public async Task <IActionResult> Put(UpdatePasswordModel model)
        {
            var command = model.Adapt <UpdatePasswordCommand>();

            command.UserId = CurrentUserId;

            return(Ok(await _mediator.Send(command)));
        }
コード例 #22
0
ファイル: AccountController.cs プロジェクト: UMKalayci/DYS
        public IActionResult UpdatePassword(string UserEmail, string Token)
        {
            var updatePasswordModel = new UpdatePasswordModel();

            updatePasswordModel.UserEmail = UserEmail;
            updatePasswordModel.Token     = Token;
            return(View(updatePasswordModel));
        }
コード例 #23
0
        public IActionResult UpdatePassword(string username)
        {
            UpdatePasswordModel model = new UpdatePasswordModel()
            {
                Username = username
            };

            return(View(model));
        }
コード例 #24
0
        public IActionResult UpdatePassword(Guid userId)
        {
            var viewModel = new UpdatePasswordModel
            {
                UserId = userId
            };

            return(PartialView("_UpdatePassword", viewModel));
        }
コード例 #25
0
        public void Try_ChangePassword_WithWrongCurrentPassword()
        {
            User account = controller.Create(model);
            UpdatePasswordModel passwordModel = new UpdatePasswordModel
            {
                CurrentPassword = "******"
            };

            Assert.Throws <InvalidValueException> (() => controller.ChangePassword(account, passwordModel));
        }
コード例 #26
0
        public ActionResult ChangePassword()
        {
            var user = User.Identity.GetUserName();
            UpdatePasswordModel update = new UpdatePasswordModel()
            {
                Username = user
            };

            return(View(update));
        }
コード例 #27
0
        public eErrors CheckIfPasswordsAreEquals(UpdatePasswordModel i_NewPassword)
        {
            eErrors error = eErrors.None;

            if (!(i_NewPassword.NewPassword.Equals(i_NewPassword.NewConfirmPassword)))
            {
                error = eErrors.PasswordAreNotEqual;
            }

            return(error);
        }
コード例 #28
0
 public bool UpdatePassword(UpdatePasswordModel obj)
 {
     try
     {
         return(_user.UpdatePassword(obj));
     }
     catch
     {
         throw;
     }
 }
コード例 #29
0
        public async Task <IActionResult> UpdatePasswordAsync(int id, UpdatePasswordModel model)
        {
            var result = await _userService.UpdatePasswordAsync(id, model);

            if (result.IsFailure)
            {
                return(BadRequest(result.Errors));
            }

            return(Ok());
        }
コード例 #30
0
        public IHttpActionResult UpdateUserPassword([FromBody] UpdatePasswordModel model)
        {
            var container = ContainerConfig.Configure();

            using (var scope = container.BeginLifetimeScope())
            {
                var    app          = scope.Resolve <ILoginBusinessRules>();
                string updateResult = app.UpdateUserPassword(model);

                return(Json(new { Result = updateResult }));
            }
        }
コード例 #31
0
        public ActionResult ChangePassword(ChangePasswordModel model)
        {
            if (ModelState.IsValid)
            {
                UpdatePasswordModel upm = new UpdatePasswordModel();
                upm.NewPassword = model.NewPassword;
                upm.OldPassword = model.OldPassword;
                upm.Username = User.Identity.Name;
                if (accountServices.UpdatePassword(upm))
                {
                    return RedirectToAction("ChangePasswordSuccess");
                }
                else
                {
                    ModelState.AddModelError("", "The current password is incorrect or the new password is invalid.");
                }
            }

            ViewData["PasswordLength"] = 6;
            return View(model);
        }
コード例 #32
0
        public bool UpdatePassword(UpdatePasswordModel changePasswordModel)
        {
            User user = db.Users.Where(x => x.Username == changePasswordModel.Username).FirstOrDefault();

            if (user != null)
            {
                if (user.Password == changePasswordModel.OldPassword)
                {
                    user.Password = changePasswordModel.NewPassword;
                    db.SaveChanges();

                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }