示例#1
0
        public bool ChangePassword(int userId, UserChangePasswordModel model, out string error)
        {
            error = string.Empty;

            if (!model.NewPassword1.Equals(model.NewPassword2))
            {
                error = "Password mismatch";
                return(false);
            }

            using (var scope = this.ServiceProvider.CreateScope())
            {
                var db   = scope.ServiceProvider.GetRequiredService <NervboxDBContext>();
                var user = db.Users.Where(u => u.Id == userId).FirstOrDefault();

                if (user == null)
                {
                    error = "User not found";
                    return(false);
                }

                if (!user.Password.Equals(GetPasswordHash(model.OldPassword)))
                {
                    error = "Wrong password";
                    return(false);
                }

                user.Password = GetPasswordHash(model.NewPassword1);
                db.SaveChanges();
                return(true);
            }
        }
示例#2
0
        public IActionResult ChangePassword(UserChangePasswordModel model)
        {
            var id     = int.Parse(this.User.Identity.Name);
            var result = _userService.ChangePassword(id, model, out string error);

            return(Ok(new { Success = result, Error = error }));
        }
示例#3
0
        public ActionResult ChangePassword(string email)
        {
            UserChangePasswordModel user = new UserChangePasswordModel();

            user.Email = email;
            return(View(user));
        }
示例#4
0
        public ActionResult ChangePasswordSumit(UserChangePasswordModel user)
        {
            ViewBag.ErrorLogin = "";
            HomeModel model = new HomeModel()
            {
                Email    = user.Email,
                Password = user.Password
            };

            if (user.Password == user.PasswordValidated)
            {
                UserModel userm = new UserModel
                {
                    Password = user.Password,
                    Email    = user.Email
                };

                bool valid;
                using (UserDataAccess userDataAccess = new UserDataAccess())
                {
                    valid = userDataAccess.UpdateUser(userm, 3);
                }

                ViewBag.Succefull = "Cambio exitoso";

                return(View("Index", new HomeModel()));
            }
            else
            {
                UserChangePasswordModel user1 = new UserChangePasswordModel();
                user1.Email   = user.Email;
                ViewBag.Error = "Las Contraseñas son distintas";
                return(View("ChangePassword", user1));
            }
        }
        public async Task <IHttpActionResult> ChangePassword(UserChangePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!User.Identity.IsAuthenticated)
            {
                return(Unauthorized());
            }

            model.UserName = User.Identity.Name;

            var result = await _repo.ChangePassword(model);

            IHttpActionResult errorResult = GetErrorResult(result);

            if (errorResult != null)
            {
                return(errorResult);
            }

            DatabaseContext.Shared.Dispose();
            return(Ok());
        }
        public async Task <dynamic> ChangePassword([FromBody] UserChangePasswordModel userChangePasswordModel)
        {
            string      accessToken = Request.Headers[HeaderNames.Authorization];
            string      token       = accessToken.Split("Bearer ")[1];
            UserReadDTO userRead    = TokenUtil.GetSubFromToken(token);

            if (ModelState.IsValid)
            {
                Services.Entities.CustomResponse UpdatePassword_Task = await _userService.UpdatePassword(userRead.UserID, userChangePasswordModel.OldPassword, userChangePasswordModel.NewPassword);

                return(new
                {
                    status = UpdatePassword_Task.status,
                    code = 200,
                    message = UpdatePassword_Task.message
                });
            }

            return(new
            {
                status = false,
                code = ReturnCodes.DataUpdateFailed,
                message = "Có Lỗi Xảy Ra Khi Cố Gắng Thay Đổi Mật Khẩu"
            });
        }
示例#7
0
        public Response <object> ChangePassword(UserChangePasswordModel _)
        {
            var user       = _repository.GetUserByUsername(_contextAccessor.HttpContext.User.Identity.Name);
            var userBefore = CloneObject.Clone(user);

            //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount)
            //{
            //    _saveLog.LogInformation("User with Active Directory cannot change password from this system!");
            //    return new Response<object>(PublicResultStatusCodes.NotAllowedOperation);
            //}

            var checkPassword = HashHelper.Verify(user.SaltedPassword, user.Password, _.OldPassword);

            if (checkPassword)
            {
                var hashHelper = new HashHelper(_.NewPassword);
                user.Password                 = hashHelper.Hash;
                user.SaltedPassword           = hashHelper.Salt;
                user.LatestPasswordChangeDate = DateTime.Now;

                var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user);

                _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2);

                return(new Response <object>(PublicResultStatusCodes.Done));
            }
            _saveLog.LogInformation("Password do not match with data in Database!");
            return(new Response <object>(PublicResultStatusCodes.WrongOldPassword));
        }
示例#8
0
        public async Task <bool> ChangePasswordAsync([FromRoute] string id, [FromBody] UserChangePasswordModel model)
        {
            //get user by id
            var user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                throw new ArgumentException("用户不存在!");
            }

            var valid = await _userManager.CheckPasswordAsync(user, model.OldPassword);

            if (!valid)
            {
                throw new ArgumentException("旧密码错误!");
            }

            var result = await _userManager.ChangePasswordAsync(user,
                                                                model.OldPassword,
                                                                model.NewPassword);

            if (result.Succeeded)
            {
                return(true);
            }
            else
            {
                throw new ApplicationException(string.Join(", ", result.Errors.Select(x => x.Description)));
            }
        }
示例#9
0
        public async Task <IActionResult> ChangePassword(UserChangePasswordModel credentials)
        {
            CustomValidation();

            var subjectId = User.GetSubjectId();

            var storedUser = await _databaseContext.UserData.Include(u => u.ProfileImage)
                             .FirstOrDefaultAsync(UserIdPredicate(subjectId));

            if (storedUser == null)
            {
                throw new HttpResponseException();
            }

            var isValid = _authService.ValidatePassword(credentials.OldPassword, storedUser.PasswordHash,
                                                        storedUser.PasswordSalt);

            if (!isValid)
            {
                throw new HttpResponseException(new UserChangePasswordError("Invalid credentials"),
                                                HttpStatusCode.BadRequest);
            }

            var newCredentials = _authService.CreateCredentials(credentials.Password);

            storedUser.PasswordHash = newCredentials.Hash;
            storedUser.PasswordSalt = newCredentials.Salt;

            await _databaseContext.SaveChangesAsync();

            await _userActivityService.CreateActivityAsync(UserActivityActionName.PasswordChange, storedUser.Id);

            return(Ok());
        }
        public async Task Change_user_password_and_response_ok_status_code()
        {
            //Arrange
            var user = AdminAreaDefaults.DefaultUser;

            using var server = new TestServerBuilder()
                               .UseUsers(user)
                               .UseCustomAuth(AdminAreaDefaults.DefaultUser, AuthSettings.Roles.Supervisor)
                               .Build();
            var client = server.CreateClient();

            var changePasswordModel = new UserChangePasswordModel
            {
                Id              = user.Id,
                Password        = "******",
                ConfirmPassword = "******"
            };
            var changePasswordModelJsonStr = JsonConvert.SerializeObject(changePasswordModel);

            //Act
            var response = await client.PostAsync("api/admin/users/changePassword",
                                                  new StringContent(changePasswordModelJsonStr, Encoding.UTF8, "application/json"));

            //Assert
            response.EnsureSuccessStatusCode();
        }
        public async Task <ActionResult> ChangePassword(
            [Bind(Prefix = nameof(UserChangePasswordViewModel.Model))][BindRequired]
            UserChangePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                var user = await _userQueries.GetUserAsync(model.Id);

                return(View(new UserChangePasswordViewModel(model, user?.Email)));
            }

            try
            {
                var command = _mapper.Map <UserChangePasswordModel, ChangeUserPasswordCommand>(model);
                await _mediator.Send(command);
            }
            catch (UserNotFoundException ex)
            {
                return(this.StatusCodeView(HttpStatusCode.NotFound, ex.Message));
            }
            catch (UserUnableToChangeStateException ex)
            {
                return(this.StatusCodeView(HttpStatusCode.Forbidden, ex.Message));
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult ChangePassword(UserChangePasswordModel model)
        {
            var user = this.Request.HttpContext.User;

            this.UserDAO.UpdatePassword(user, model.CurrentPassword, model.NewPassword, model.ConfirmPassword);

            return(Ok());
        }
示例#13
0
        public async Task ChangePassword(UserChangePasswordModel model)
        {
            var item = await _repository.GetAsync(model.Id);

            UserFactory.ChangePassword(model, item, _userId);
            _repository.ChangePassword(item);
            await _unitOfWork.SaveChangesAsync();
        }
        public async Task <ActionResult> ChangePassword(UserChangePasswordModel changePassword)
        {
            var response = await service.ChangePassword(changePassword, User.GetUserId());

            if (response.status)
            {
                return(Ok(response));
            }
            return(BadRequest(response));
        }
示例#15
0
        public async Task <IActionResult> ChangePassword(UserChangePasswordModel model)
        {
            model.UserName = User.Identity.Name;
            var resut = await _userApiClient.ChangePassword(model);

            if (resut)
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(BadRequest("Doi mat khau khong thanh cong"));
        }
示例#16
0
        public void ChangePass(int id, UserChangePasswordModel value)
        {
            string newSalt     = AppHelper.CreateSaltKey(10);
            string newPassword = AppHelper.EncryptText(value.Password.Trim(), newSalt);

            var x = Load(id);

            x.Salt       = newSalt;
            x.Password   = newPassword;
            x.LastUpdate = DateTime.UtcNow;
            UpdateEntity(x);
        }
示例#17
0
        public string ChangePassword([FromBody] UserChangePasswordModel user)
        {
            if (ModelState.IsValid)
            {
                var email = HttpContext.User.Claims.Where(context => context.Type == ClaimTypes.Email)
                            .Select(context => context.Value).SingleOrDefault();
                var sessionUser = _repo.GetUserByEmail(email);

                if (sessionUser.Id == user.Id)
                {
                    return(_repo.ChangeUserPassword(user));
                }
            }
            return("Failed to update password");
        }
示例#18
0
        public string ChangePassword([FromBody] UserChangePasswordModel user)
        {
            if (ModelState.IsValid)
            {
                var id = HttpContext.User.Claims.Where(c => c.Type == ClaimTypes.Name)
                         .Select(c => c.Value).SingleOrDefault();
                var sessionUser = _db.GetUserById(id);

                if (sessionUser.Id == user.Id)
                {
                    return(_db.ChangeUserPassword(user));
                }
            }
            return("How did you even get here?");
        }
示例#19
0
        public void ChangePassword(UserChangePasswordModel model)
        {
            model.NewPassword = hashCryptoHelper.HashString(model.NewPassword);
            model.OldPassword = hashCryptoHelper.HashString(model.OldPassword);

            var userId   = int.Parse(aesCryptoHelper.DecryptString(clientContextScraper.GetClientClaimsIdentityName()));
            var userData = userDataRepository.FetchAll().Where(x => x.Id == userId && x.UserEmail == model.UserEmail && x.PassHash == model.OldPassword).FirstOrDefault();

            userServiceValidationHelper.ValidateUserData(userData);

            userData.PassHash         = model.NewPassword;
            userData.FailedLoginCount = 0;
            userDataRepository.Update(userData);
            userDataRepository.Save();
        }
示例#20
0
        public async Task <IActionResult> UserChangePasswordAsync([FromBody] UserChangePasswordModel model)
        {
            User user = await _userService.FindUserAsync(model.email);

            var result = await _userService.ChangeUserPasswordAsync(user,
                                                                    model.password, model.newpassword);


            string Data_Created = "";

            if (result.Succeeded)
            {
                Data_Created = "Password changed successfully.";
                return(Ok(Json(Data_Created)));
            }

            return(BadRequest(result.Errors.Select(s => s.Description).ToString()));
        }
示例#21
0
        public async Task <IActionResult> ChangePass([FromBody] UserChangePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorList()));
            }

            try
            {
                await _manager.ChangePassword(model);
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }

            return(Ok());
        }
        public ActionResult ChangePassword(UserChangePasswordModel model)
        {
            if (ModelState.IsValid)
            {
                var user = _db.FindByName(model.UserName);

                _db.RemovePassword(user.Id);
                var result = _db.AddPassword(user.Id, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
            }

            ModelState.AddModelError(string.Empty, AuthStrings.UnableToChangePassword);

            return(View(model));
        }
示例#23
0
        public ActionResult ChangePassword(UserChangePasswordModel user)
        {
            var ss = Session[Common.UserSession];

            if (ss != null)
            {
                try
                {
                    var uid = Int32.Parse(ss.ToString().Split('_')[0]);
                    using (var db = new FBLEntities())
                    {
                        var us = db.SystemUsers.FirstOrDefault(x =>
                                                               x.Id == uid);
                        if (us != null)
                        {
                            var isMatch = us.Password.Equals((user.OldPassword + us.Salt).ToSHA());
                            if (!isMatch)
                            {
                                ModelState.AddModelError("OldPassword", "Old password does not match.");
                                return(View());
                            }


                            if (ModelState.IsValid)
                            {
                                us.Password = (user.Password + us.Salt).ToSHA();
                                db.SaveChanges();
                                Extension.Notifications.AddNotification(this, "Your password has changed!", NotificationType.SUCCESS);
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }

            return(View());
        }
示例#24
0
        internal string ChangeUserPassword(UserChangePasswordModel user)
        {
            User savedUser = _db.QueryFirstOrDefault <User>(@"
            SELECT * FROM users WHERE id = @id
            ", user);

            var valid = BCrypt.Net.BCrypt.Verify(user.OldPassword, savedUser.Password);

            if (valid)
            {
                user.NewPassword = BCrypt.Net.BCrypt.HashPassword(user.NewPassword);
                var i = _db.Execute(@"
                    UPDATE users SET
                        password = @NewPassword
                    WHERE id = @id
                ", user);
                return("Good Job");
            }
            return("Umm nope!");
        }
示例#25
0
        public string ChangeUserPassword(UserChangePasswordModel user)
        {
            User savedUser = _db.QueryFirstOrDefault <User>(@"
      SELECT * FROM users WHERE id = @id
      ", user);

            var valid = BCrypt.Net.BCrypt.Verify(user.OldPassword, savedUser.Password);

            if (valid)
            {
                user.NewPassword = BCrypt.Net.BCrypt.HashPassword(user.NewPassword);
                var rowsAffected = _db.Execute(@"
        UPDATE users SET
          password = @NewPassword
        WHERE id = @id
        ", user);
                return("Password successfully changed");
            }
            return("Unable to change password");
        }
        public async Task <IResponse> ChangePassword(UserChangePasswordModel changePassword, int loggedInUser)
        {
            var result = await userManager.FindByIdAsync(loggedInUser + "");

            if (result != null)
            {
                var isChanged = await userManager.ChangePasswordAsync(result, changePassword.OldPassword, changePassword.NewPassword);

                if (!isChanged.Succeeded)
                {
                    response.status   = false;
                    response.error_EN = "Old Password Incorrect";
                }
            }
            else
            {
                response.error_EN = "User Doesn't Exist";
                response.status   = false;
            }
            return(response);
        }
示例#27
0
        public HttpResponseMessage ChangePasswordOfUser(
            [FromBody] UserChangePasswordModel model, [FromUri] string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions(() =>
            {
                var user = this.GetUserBySessionKey(sessionKey);

                string userOldAuthCode = user.AuthCode;
                this.ValidateAuthCodesMatch(userOldAuthCode, model.OldAuthCode);
                this.ValidateAuthCodesMatch(model.NewAuthCode, model.ConfirmNewAuthCode);
                this.ValidateAuthCode(model.NewAuthCode);

                user.AuthCode = model.NewAuthCode;
                this.db.Users.Update(user);
                this.db.SaveChanges();

                var response = this.Request.CreateResponse(HttpStatusCode.Created);
                return(response);
            });

            return(responseMsg);
        }
        public async Task <ActionResult> ChangePassword(UserChangePasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ValidationProblem());
            }

            try
            {
                var command = _mapper.Map <UserChangePasswordModel, ChangeUserPasswordCommand>(model);
                await _mediator.Send(command);
            }
            catch (UserNotFoundException ex)
            {
                return(NotFound(ex.Message));
            }
            catch (UserUnableToChangeStateException ex)
            {
                return(Conflict(ex.Message));
            }

            return(Ok());
        }
        public ActionResult SaveUpdatePassword(UserChangePasswordModel user)
        {
            if (ModelState.IsValid)
            {
                if (user.Id == Guid.Empty)
                {
                    return(View("UserProfile"));
                }

                var person = Repository.Data.Get <Person>(user.Id);
                if (person.Validate(user.OldPassword))
                {
                    person.SetPassword(user.Password);
                    ActionHelper.TryExecute(() => Repository.Data.Save(person), ModelState);
                }
                else
                {
                    ModelState.AddModelError("LoginFailed", WebStroreResource.LoginFailed);
                }
            }
            ViewBag.Message = WebStroreResource.PasswordChangedSuccessful;
            return(View("ChangePassword"));
        }
示例#30
0
        public async Task <bool> ChangePassword(UserChangePasswordModel model)
        {
            var client = _httpClientFactory.CreateClient();

            client.BaseAddress = new Uri(_configuration["BaseAddress"]);
            var sessions = _httpContextAccessor.HttpContext.Session.GetString("Token");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sessions);

            var json        = JsonConvert.SerializeObject(model);
            var httpContent = new StringContent(json, Encoding.UTF8, "application/json");

            var response = await client.PutAsync($"/api/user/changePassword", httpContent);

            var result = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                return(JsonConvert.DeserializeObject <bool>(result));
            }

            return(JsonConvert.DeserializeObject <bool>(result));
        }