Пример #1
0
        public async Task <AppSrvResult> UpdatePasswordAsync(long id, UserChangePwdDto input)
        {
            var user = await _userRepository.FetchAsync(x => new
            {
                x.Id,
                x.Salt,
                x.Password,
            }, x => x.Id == id);

            if (user == null)
            {
                return(Problem(HttpStatusCode.NotFound, "用户不存在,参数信息不完整"));
            }

            var md5OldPwdString = HashHelper.GetHashedString(HashType.MD5, input.OldPassword, user.Salt);

            if (!md5OldPwdString.EqualsIgnoreCase(user.Password))
            {
                return(Problem(HttpStatusCode.BadRequest, "旧密码输入错误"));
            }

            var newPwdString = HashHelper.GetHashedString(HashType.MD5, input.Password, user.Salt);

            await _userRepository.UpdateAsync(new SysUser { Id = user.Id, Password = newPwdString }, UpdatingProps <SysUser>(x => x.Password));

            return(AppSrvResult());
        }
Пример #2
0
        public async Task <Tuple <bool, string> > ChangeUserPwd(UserChangePwdDto pwdDto)
        {
            var user = await _userManager.GetUserByIdAsync(pwdDto.Id);

            if (user == null)
            {
                return(new Tuple <bool, string>(false, "无可用操作对象"));
            }

            if (!_userManager.CheckUserPwd(user, pwdDto.OldPassword))
            {
                return(new Tuple <bool, string>(false, "旧密码不正确"));
            }

            var result = await _userManager.ChangePasswordAsync(user, pwdDto.Password);


            return(new Tuple <bool, string>(result.Succeeded, result.Errors.ToString()));
        }
Пример #3
0
        public async Task <JsonResult> SaveProfile(UserChangePwdDto pwdDto)
        {
            CheckModelState();

            bool   status  = false;
            string message = "";

            try
            {
                var tupleResult = await _userAppService.ChangeUserPwd(pwdDto);

                status  = tupleResult.Item1;
                message = tupleResult.Item2;
            }
            catch (Exception e)
            {
                status  = false;
                message = e.Message;
            }


            return(Json(new { success = status, message = message }));
        }
Пример #4
0
 public async Task <ActionResult> ChangePassword([FromBody] UserChangePwdDto input)
 => Result(await _accountService.UpdatePasswordAsync(_userContext.Id, input));