예제 #1
0
        public async Task <ActionResult> ForgotPassword(ForgotPasswordModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            OperationDetails result = await _userDataService.IsUserEmailConfirmed(model.UserName);

            if (!result.Succeeded)
            {
                return(View("Error", (object)result.Message));
            }

            string userId = await _userDataService.GetIdByUserName(model.UserName);

            UserDTO user = await _userDataService.GetUserInfo(userId);

            string code = await _mailingService.GeneratePasswordToken(user);

            var url = Url.Action("ResetPassword", "Email", new
            {
                area   = "User",
                userId = user.Id,
                code   = code
            }, protocol: Request.Url.Scheme);
            await _mailingService.SendEmailAsync(user.Id, "Testing System", $"<a href='{url}'>Reset your password with this link</a>");

            return(View("ResetPasswordConfirm", (object)user.Email));
        }