public virtual ActionResult ConfirmationRequired() { User user = GetCurrentUser(); var model = new ConfirmationViewModel { ConfirmingNewAccount = !(user.Confirmed), UnconfirmedEmailAddress = user.UnconfirmedEmailAddress, }; return View(model); }
public virtual ActionResult ConfirmationRequiredPost() { User user = GetCurrentUser(); var confirmationUrl = Url.ConfirmationUrl( "Confirm", "Users", user.Username, user.EmailConfirmationToken); MessageService.SendNewAccountEmail(new MailAddress(user.UnconfirmedEmailAddress, user.Username), confirmationUrl); var model = new ConfirmationViewModel { ConfirmingNewAccount = !(user.Confirmed), UnconfirmedEmailAddress = user.UnconfirmedEmailAddress, SentEmail = true, }; return View(model); }
public virtual async Task<ActionResult> Confirm(string username, string token) { // We don't want Login to have us as a return URL // By having this value present in the dictionary BUT null, we don't put "returnUrl" on the Login link at all ViewData[Constants.ReturnUrlViewDataKey] = null; if (!String.Equals(username, User.Identity.Name, StringComparison.OrdinalIgnoreCase)) { return View(new ConfirmationViewModel { WrongUsername = true, SuccessfulConfirmation = false, }); } var user = GetCurrentUser(); string existingEmail = user.EmailAddress; var model = new ConfirmationViewModel { ConfirmingNewAccount = String.IsNullOrEmpty(existingEmail), SuccessfulConfirmation = true, }; try { if (!(await UserService.ConfirmEmailAddress(user, token))) { model.SuccessfulConfirmation = false; } } catch (EntityException) { model.SuccessfulConfirmation = false; model.DuplicateEmailAddress = true; } // SuccessfulConfirmation is required so that the confirm Action isn't a way to spam people. // Change notice not required for new accounts. if (model.SuccessfulConfirmation && !model.ConfirmingNewAccount) { MessageService.SendEmailChangeNoticeToPreviousEmailAddress(user, existingEmail); string returnUrl = HttpContext.GetConfirmationReturnUrl(); if (!String.IsNullOrEmpty(returnUrl)) { TempData["Message"] = "You have successfully confirmed your email address!"; return SafeRedirect(returnUrl); } } return View(model); }