public async Task <ActionResult> ConfirmEmail() { // send a confirmation email var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); EmailConfirmationEmail email = new EmailConfirmationEmail(); email.To = user.Email; email.UserFullName = user.FullName; email.ConfirmEmailLink = callbackUrl; email.Code = code; await email.SendAsync(); if (Request.IsAjaxRequest()) { return(Json(new { Succeeded = true, Errors = new string[] { } }, JsonRequestBehavior.AllowGet)); } else { return(View()); } }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new RedfernUser() { UserName = model.UserName.ToLower(), FullName = model.FullName, Email = model.Email, TenantId = _context.TenantID, SignupDate = DateTime.UtcNow, IsEnabled = true, EmailConfirmed = false }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // send a confirmation email var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); EmailConfirmationEmail email = new EmailConfirmationEmail(); email.To = user.Email; email.UserFullName = user.FullName; email.ConfirmEmailLink = callbackUrl; email.Code = code; await email.SendAsync(); // send an email to the admin account that a new user has registered if (!String.IsNullOrEmpty(AppSettings.AdminEmail)) { NewUserRegistrationEmail registrationEmail = new NewUserRegistrationEmail(); registrationEmail.To = AppSettings.AdminEmail; registrationEmail.NewUserName = user.UserName; registrationEmail.NewUserFullName = user.FullName; registrationEmail.NewUserEmailAddress = user.Email; await registrationEmail.SendAsync(); } ViewBag.UserEmail = user.Email; return(View("RegisterSuccess")); } else { AddErrors(result); } } // If we got this far, something failed, redisplay form return(View(model)); }