コード例 #1
0
        public async Task <IActionResult> Register(UserRegistationModel userModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(userModel));
            }
            var user   = _mapper.Map <User>(userModel);
            var result = await _userManager.CreateAsync(user, userModel.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.TryAddModelError(error.Code, error.Description);
                }
                return(View(userModel));
            }
            await _userManager.AddToRoleAsync(user, "Visitor");

            return(RedirectToAction(nameof(HomeController.Index), "Home"));
        }
コード例 #2
0
        public async Task <IActionResult> Register(UserRegistationModel userRegistationModel)
        {
            if (ModelState.IsValid)
            {
                var existingUser = await _userManager.FindByEmailAsync(userRegistationModel.EmailAddress);

                if (existingUser is null)
                {
                    IdentityUser identityUser = new()
                    {
                        Email          = userRegistationModel.EmailAddress,
                        EmailConfirmed = true,
                        UserName       = userRegistationModel.EmailAddress
                    };
                    IdentityResult result = await _userManager.CreateAsync(identityUser, userRegistationModel.Password);

                    if (result.Succeeded)
                    {
                        existingUser = await _userManager.FindByEmailAsync(userRegistationModel.EmailAddress);

                        UserModel u = new()
                        {
                            Id           = existingUser.Id,
                            FirstName    = userRegistationModel.FirstName,
                            LastName     = userRegistationModel.LastName,
                            EmailAddress = userRegistationModel.EmailAddress
                        };
                        _userData.CreateUser(u);
                        return(Ok());
                    }
                }
            }
            return(BadRequest());
        }
    }
}