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")); }
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()); }
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)); }