示例#1
0
        public async Task <IActionResult> ConfirmAccountCreation(ConfirmAccountCreationViewModel model)
        {
            if (model.Code == null)
            {
                return(RedirectToAction(nameof(HomeController.Index), "Home"));
            }
            var accountReq = _context.AccountCreationRequests.SingleOrDefault(r => r.Secret == model.Code);

            if (accountReq != null && !accountReq.Completed && !AccountRequestExpired(accountReq))
            {
                // create new user
                (var result, var user) = await CreateUser(_signInManager, _emailSender, accountReq.RequestedEmail, accountReq.RequestedEmail, model.Password, sendEmail : false, signIn : false);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with api.");

                    accountReq.ApplicationUserId = user.Id;
                    accountReq.Completed         = true;
                    _context.AccountCreationRequests.Update(accountReq);
                    _context.SaveChanges();

                    this.FlashSuccess("Account created");
                    return(RedirectToAction(nameof(HomeController.Index), "Home"));
                }
                AddErrors(result);

                // If we got this far, something failed, redisplay form
                model.User = null;
                return(View(model));
            }

            this.FlashError("Invalid account code");
            return(RedirectToAction(nameof(HomeController.Index), "Home"));
        }
示例#2
0
        public IActionResult ConfirmAccountCreation(string code)
        {
            if (code == null)
            {
                return(RedirectToAction(nameof(HomeController.Index), "Home"));
            }
            var accountReq = _context.AccountCreationRequests.SingleOrDefault(r => r.Secret == code);

            if (accountReq != null && !accountReq.Completed && !AccountRequestExpired(accountReq))
            {
                var model = new ConfirmAccountCreationViewModel {
                    Code = code
                };
                return(View(model));
            }

            this.FlashError("Invalid account code");
            return(RedirectToAction(nameof(HomeController.Index), "Home"));
        }