Esempio n. 1
0
        public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordInput forgetPasswordInput)
        {
            var user = await userManager.FindByNameAsync(forgetPasswordInput.Email);

            if (user == null || user.EmailConfirmed == false)
            {
                return(BadRequest());
            }

            var resetPasswordToken = await userManager.GeneratePasswordResetTokenAsync(user);

            return(Ok(resetPasswordToken));
        }
        public async Task <ForgetPasswordOutput> ForgetPassword(ForgetPasswordInput input)
        {
            var user = await UserManager.Users.FirstOrDefaultAsync(p => p.UserName == input.UserName);

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

            if (user.Question != input.Question || user.Answer != input.Answer)
            {
                throw new UserFriendlyException("密保不正确");
            }

            user.Password = _passwordHasher.HashPassword(user, input.Password);

            await UserManager.UpdateAsync(user);

            var result = await UserManager.SetLockoutEnabledAsync(user, false);

            return(new ForgetPasswordOutput());
        }