コード例 #1
0
ファイル: UserInfoAppService.cs プロジェクト: radtek/Fms
        /// <summary>
        /// 保存用户信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ApiUserBean UserSave(ApiRequestSaveEntityBean <ApiUserBean> request)
        {
            var userId   = request.userId;
            var token    = request.authToken;
            var entity   = request.entity;
            var userInfo = _userRepository.FirstOrDefault(u => u.Id == userId);
            var roleIds  = userInfo.Roles.Select(r => r.RoleId).ToList();
            var roleList = _roleRepository.GetAll().Where(r => roleIds.Contains(r.Id)).ToList();

            userInfo.PhoneNumber = entity.phoneNumber;
            userInfo.Name        = entity.name;

            _userRepository.Update(userInfo);

            return(entity);
        }
コード例 #2
0
ファイル: AccountController.cs プロジェクト: radtek/Fms
        public JsonResult SaveModifiedPwd(ModifyPwdViewModel modifyModel)
        {
            var errorInfo = new ApiErrorBean();

            // 确认密码不匹配
            if (!modifyModel.NewPassword.Trim().Equals(modifyModel.ConfirmPassword.Trim()))
            {
                errorInfo.isError = true;
                errorInfo.code    = 1;
                errorInfo.message = "两次新密码输入不一致,请重新输入!";

                return(Json(errorInfo));
            }

            var keyValue = new ApiKeyValueBean
            {
                key   = modifyModel.OldPassword,
                value = modifyModel.NewPassword
            };

            var savePara = new ApiRequestSaveEntityBean <ApiKeyValueBean>
            {
                userId = modifyModel.UserId,
                entity = keyValue
            };

            // 保存修改密码
            errorInfo = _userInfoAppService.UserEditPwd(savePara);

            if (!errorInfo.isError)//写入密码修改记录
            {
                _userPwdAppService.InsertUserPwdLog(new Dto.UserPwdLogDto
                {
                    NewPwd = EncryptHelper.AesDecrpt(modifyModel.NewPassword),
                    OldPwd = EncryptHelper.AesDecrpt(modifyModel.OldPassword),
                    UserId = modifyModel.UserId
                });
            }

            return(Json(errorInfo));
        }
コード例 #3
0
ファイル: UserInfoAppService.cs プロジェクト: radtek/Fms
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ApiErrorBean UserEditPwd(ApiRequestSaveEntityBean <ApiKeyValueBean> request)
        {
            var errorInfo = new ApiErrorBean();
            var userId    = request.userId;
            var oldPwd    = EncryptHelper.AesDecrpt(request.entity.key);
            var newPwd    = EncryptHelper.AesDecrpt(request.entity.value);

            try
            {
                DataTable dt = DbHelper.ExecuteGetTable("select id,PASSWORD from ABP_USERS where id='" + userId + "'");
                if (dt != null && dt.Rows.Count > 0)
                {
                    object uid = dt.Rows[0]["ID"];
                    if (uid != null && Convert.ToInt32(uid) > 0)
                    {
                        #region 验证旧密码
                        var hashHandler    = new PasswordHasher();
                        var verifiedResult = hashHandler.VerifyHashedPassword(dt.Rows[0]["PASSWORD"].ToString(), oldPwd);
                        //旧密码不匹配
                        if (!verifiedResult.Equals(PasswordVerificationResult.Success))
                        {
                            errorInfo.isError = true;
                            errorInfo.code    = 3;
                            errorInfo.message = "旧密码错误";

                            return(errorInfo);
                        }
                        #endregion

                        #region 密码复杂度
                        string resComplex = ValidateComplex(newPwd);
                        if (!string.IsNullOrEmpty(resComplex) && resComplex.Length > 0)
                        {
                            errorInfo.isError = true;
                            errorInfo.code    = 3;
                            errorInfo.message = "密码复杂度不够:\r\n" + resComplex;
                            return(errorInfo);
                        }
                        #endregion

                        Common.DbHelper.Execute("update ABP_USERS set PASSWORD='******' where ID=" + uid);
                    }
                }
                else
                {
                    errorInfo.isError = true;
                    errorInfo.code    = 2;
                    errorInfo.message = "当前用户不存在";
                    return(errorInfo);
                }
            }
            catch (Exception ex)
            {
                errorInfo.isError = true;
                errorInfo.code    = 2;
                errorInfo.message = "异常错误:" + ex.Message;
                return(errorInfo);
            }

            errorInfo.isError = false;
            errorInfo.code    = 0;
            errorInfo.message = "修改成功";
            return(errorInfo);
        }