Ejemplo n.º 1
0
        public async Task <ForgotPasswordResultModel> ForgotPasswordAsync(ForgotPasswordViewModel model, IUrlHelper url, string callAction, string controller, string scheme)
        {
            ApplicationUser user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
            {
                return(new ForgotPasswordResultModel
                {
                    IsSuccesed = false,
                    HasUser = false,
                    ForgotResult = "Error to access current user."
                });
            }
            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackUrl = GenerateCallbackLink(url, callAction, controller, user.Id, code, scheme);
            await _emailSenderService.SendEmailResetPasswordAsync(new EmailResetPasswordModel { Email = model.Email, Link = callbackUrl });

            return(new ForgotPasswordResultModel
            {
                IsSuccesed = true,
                HasUser = true,
                ForgotResult = "Success"
            });
        }