public async Task <IActionResult> OnGetAsync(string email)
        {
            if (email == null)
            {
                return(RedirectToPage("/Index"));
            }

            var user = await _userManager.FindByEmailAsync(email);

            if (user == null)
            {
                return(NotFound($"Unable to load user with email '{email}'."));
            }

            Email = email;
            // Once you add a real email sender, you should remove this code that lets you confirm the account
            DisplayConfirmAccountLink = true;
            if (DisplayConfirmAccountLink)
            {
                var userId = await _userManager.GetUserIdAsync(user);

                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                EmailConfirmationUrl = Url.Page(
                    "/Account/ConfirmEmail",
                    pageHandler: null,
                    values: new { area = "Identity", userId = userId, code = code },
                    protocol: Request.Scheme);
            }

            return(Page());
        }
Esempio n. 2
0
        public void SendRegistrationEmail(Microsoft.AspNetCore.Identity.UserManager <ApplicationUser> userManager, ApplicationUser user)
        {
            string tokenId = new TokenManager(context).SaveToken(
                new Token
            {
                User      = user,
                UserToken = userManager.GenerateEmailConfirmationTokenAsync(user)
                            .Result,
                ExpiryDate = DateTime.Now.AddDays(1)
            });
            string          requestUrl = Configuration["FrontEndUrl:BaseUrl"] + Configuration["FrontEndUrl:VerifyAccountUrlPreffix"] + tokenId;
            IdentityMessage message    = new IdentityMessage {
                Body = requestUrl, Destination = user.Email, Subject = "Registration Verification"
            };

            new EmailService().SendEmailAsync(message);
        }