public async Task <ActionResult> ResendEmailConfirmation(
            ResendEmailConfirmationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("Error"));
            }


            // Require the user to have a confirmed email before they can log on.
            var user = await UserManager.FindByNameAsync(model.Email);

            if (user != null)
            {
                // Send an email with this link
                await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                await
                SendEmailConfirmationTokenAsync(user.Id,
                                                AccountResources.RegisterEmailConfirmation_Subject);

                return(View(
                           "ConfirmationEmailSent",
                           new ConfirmationEmailSentViewModel
                {
                    Email = user.Email
                }));
            }

            ViewBag.ErrorMessage =
                AccountResources.UnableToResendEmailConfirmation;
            return(View("Error"));
        }
Exemple #2
0
        public IActionResult ResendConfirmationEmail(ResendEmailConfirmationViewModel model)
        {
            var user = getUserDetails.Invoke(model.Email);

            if (user == null)
            {
                Alert.Danger("Something went wrong");
                return(View());
            }
            if (user.EmailConfirmedOn != null)
            {
                Alert.Danger("Email already confirmed");
                return(View());
            }

            var parser            = new JwtParser();
            var confirmationToken = parser.AcquireEmailConfirmationToken(model.Email, user.Id).Token;
            var callbackUrl       = Url.Action("ConfirmEmail", "Auth", new { token = confirmationToken }, Request.Scheme);

            emailService.SendEmailAsync(model.Email, "Confirm your account", callbackUrl).ConfigureAwait(false);

            Alert.Success("Check your inbox");
            return(View());
        }
Exemple #3
0
        public async Task <ActionResult> ResendEmailConfirmation(ResendEmailConfirmationViewModel model)
        {
            var userToSendLink = UserManager.FindByEmail(model.Email);
            var accessToLink   = UserManager.CheckPasswordAsync(userToSendLink, model.Password);

            if (!ModelState.IsValid)
            {
                return(PartialView("_infoPartial", InvalidModel()));
            }

            var user = await UserManager.FindByNameAsync(model.Email);

            if (user == null)
            {
                return(PartialView("_infoPartial", InvalidUser()));
            }

            if (!await accessToLink)
            {
                return(PartialView("_infoPartial", InvalidResult("Niepoprawny adres email lub hasło")));
            }

            if (await UserManager.IsEmailConfirmedAsync(user.Id))
            {
                return(PartialView("_infoPartial", InvalidResult("Konto jest już aktywne")));
            }

            await SendEmailConfirmationTokenAsync(user.Id, "Aktywuj swoje konto");

            var vm = new InfoViewModel
            {
                Message = "Link aktywacyjny został przesłany na podany adres email"
            };

            return(PartialView("_infoPartial", vm));
        }