public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user var requireEmailConfirmation = Convert.ToBoolean(ConfigurationManager.AppSettings["requireEmailConfirmation"] ?? "false"); var token = webSecurity.CreateUserAndAccount(model.UserName, model.Password, requireConfirmationToken: requireEmailConfirmation); if (requireEmailConfirmation) { // Send email to user with confirmation token if (Request.Url != null) { string hostUrl = Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped); string confirmationUrl = hostUrl + VirtualPathUtility.ToAbsolute("~/Account/Confirm?confirmationCode=" + HttpUtility.UrlEncode(token)); const string fromAddress = "Your Email Address"; var toAddress = model.Email; const string subject = "Thanks for registering but first you need to confirm your registration..."; var body = string.Format( "Your confirmation code is: {0}. Visit <a href=\"{1}\">{1}</a> to activate your account.", token, confirmationUrl); // NOTE: This is just for sample purposes // It's generally a best practice to not send emails (or do anything on that could take a long time and potentially fail) // on the same thread as the main site // You should probably hand this off to a background MessageSender service by queueing the email, etc. messengerService.Send(fromAddress, toAddress, subject, body, true); } // Thank the user for registering and let them know an email is on its way return RedirectToAction("Thanks", "Account"); } // Navigate back to the homepage and exit webSecurity.Login(model.UserName, model.Password); return RedirectToAction("Index", "Home"); } // If we got this far, something failed, redisplay form ViewBag.PasswordLength = webSecurity.MinPasswordLength; return View(model); }
public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user var requireEmailConfirmation = false; var token = WebSecurityService.CreateUserAndAccount(model.UserName, model.Password, requireEmailConfirmation); if (requireEmailConfirmation) { // TODO: Send email to user with confirmation token // Thank the user for registering and let them know an email is on its way return RedirectToAction("Thanks", "Account"); } else { // Navigate back to the homepage and exit WebSecurityService.Login(model.UserName, model.Password); return RedirectToAction("Index", "Home"); } } // If we got this far, something failed, redisplay form ViewBag.PasswordLength = WebSecurityService.MinPasswordLength; return View(model); }