public async Task <IActionResult> RequestPasswordReset(string email)
        {
            try
            {
                var response = new ApiResponse <string>();
                var user     = await _userManager.FindByEmailAsync(email);

                if (user == null)
                {
                    response.Errors.Add($"User with {email} does not exist");
                    return(Ok(response));
                }
                var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                var tokenQueryModel = new PasswordResetQueryModel {
                    Email = user.Email, Token = code
                };
                var tokenQueryModelString = JsonConvert.SerializeObject(tokenQueryModel);
                code = _protector.Protect(tokenQueryModelString);
                //code = tokenQueryModelString;
                //code = WebUtility.UrlEncode(code);
                response.Payload = code;
                return(Ok(response));
            }
            catch (Exception e)
            {
                throw;
            }
        }
Пример #2
0
        public async Task <List <ValidationResult> > RequestPasswordReset(string email)
        {
            var user = await _userManager.FindByEmailAsync(email);

            if (user == null)
            {
                results.Add(new ValidationResult($"User with {email} does not exist"));
                return(results);
            }
            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            code = WebUtility.UrlEncode(code);
            var tokenQueryModel = new PasswordResetQueryModel {
                Email = user.Email, Token = code
            };
            var tokenQueryModelString = JsonConvert.SerializeObject(tokenQueryModel);

            code = _protector.Protect(tokenQueryModelString);
            await SendMessage("email", BusMessageTypes.USER_MSG, new UserEmailTokenViewModel
            {
                Code      = code,
                User      = user,
                EmailType = EmailTypeEnum.UserResetPassword
            });

            return(results);
        }