예제 #1
0
        /// <summary>
        /// 重置密码,响应前端的请求,构建一个简单的视图模型实例返回给前端
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IActionResult ResetUserPassword(string id)
        {
            var boVM = new ApplicationUserResetPasswordVM()
            {
                Id = id, Password = "", ConfirmPassword = ""
            };

            return(PartialView("../../Views/ApplicationOrganization/ApplicationUser/_ResetUserPassword", boVM));
        }
예제 #2
0
        /// <summary>
        /// 处理重置密码的请求,并返回处理结果
        /// </summary>
        /// <param name="boVM"></param>
        /// <returns></returns>
        public async Task <IActionResult> SaveResetUserPassword([Bind("Id,Password,ConfirmPassword")] ApplicationUserResetPasswordVM boVM)
        {
            var validateMessage = new ValidateMessage();

            if (ModelState.IsValid)
            {
                var user = await _UserManager.FindByIdAsync(boVM.Id);

                // 获取重置密码的令牌
                string resetToken = await _UserManager.GeneratePasswordResetTokenAsync(user);

                // 重置密码
                await _UserManager.ResetPasswordAsync(user, resetToken, boVM.Password);

                validateMessage.IsOK = true;
                validateMessage.ValidateMessageItems.Add(
                    new ValidateMessageItem
                {
                    IsPropertyName = false,
                    MessageName    = "",
                    Message        = "密码重置成功,请关闭对话框。"
                });

                return(Json(validateMessage));
            }
            else
            {
                validateMessage.IsOK = false;
                var errCollection = from errKey in ModelState.Keys
                                    from errMessage in ModelState[errKey].Errors
                                    where ModelState[errKey].Errors.Count > 0
                                    select(new { errKey, errMessage.ErrorMessage });
                foreach (var errItem in errCollection)
                {
                    var vmItem = new ValidateMessageItem()
                    {
                        IsPropertyName = true,
                        MessageName    = errItem.errKey,
                        Message        = errItem.ErrorMessage
                    };
                    validateMessage.ValidateMessageItems.Add(vmItem);
                }
                return(Json(validateMessage));
            }
        }