コード例 #1
0
        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());
            }
        }
コード例 #2
0
        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));
        }