Beispiel #1
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="modifyPwdParam"></param>
        /// <param name="currentUser"></param>
        /// <returns></returns>
        public async Task <ResponseModel <string> > ModifyPwdAsync(ModifyPwdParam modifyPwdParam, UserCacheBo currentUser)
        {
            var result = new ResponseModel <string>();

            if (modifyPwdParam.NewPassWord == modifyPwdParam.OldPassWord)
            {
                return(result.Fail(ResponseCode.Fail, "不允许原密码和新密码相同的修改"));
            }

            if (modifyPwdParam.OldPassWord.Md5Encrypt() == currentUser.PassWord)
            {
                var updateResult = await SysUserDao.ModifyPwdAsync(modifyPwdParam, currentUser.UserId);

                if (updateResult)
                {
                    // 修改成功 登出 重新登录
                    await LogoutAsync(currentUser);

                    return(result.Succeed("修改成功,请重新登录"));
                }

                return(result.Fail(ResponseCode.Fail, "修改失败,请稍后再试"));
            }

            return(result.Fail(ResponseCode.Fail, "原密码不正确"));
        }
Beispiel #2
0
        /// <summary>
        /// 根据用户名修改密码
        /// </summary>
        /// <param name="modifyPwdParam"></param>
        /// <param name="uid"></param>
        /// <returns></returns>
        public async Task <bool> ModifyPwdAsync(ModifyPwdParam modifyPwdParam, long uid)
        {
            var result = await CurrentDbContext.SysUsers.Where(c => c.UserId == uid).UpdateFromQueryAsync(c => new SysUser
            {// 使用这种方式只会修改这两个字段
                PassWord    = modifyPwdParam.NewPassWord.Md5Encrypt(),
                UpdatedTime = DateTime.Now,
                UpdatedBy   = uid,
            });

            return(result > 0);
        }
        public async Task <ActionResult> ModifyPwd(ModifyPwdParam modifyPwdParam)
        {
            var result = await UserBll.ModifyPwdAsync(modifyPwdParam, CurrentUser);

            return(MyJson(result));
        }