public async Task <IActionResult> Create(CreateExternalInputModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, Gender = model.Gender, UserName = model.UserName, Email = model.Email, EmailConfirmed = true, }; var result = await _userManager.CreateAsync(user); if (result.Succeeded) { var externalResult = await HttpContext.AuthenticateAsync(IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme); var(localUser, provider, providerUserId, claims) = FindUserFromExternalProvider(externalResult); result = await _userManager.AddLoginAsync(user, new UserLoginInfo(provider, providerUserId, user.UserName)); if (result.Succeeded) { return(RedirectToAction("Callback")); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(View(model)); }
public IActionResult Create(string provider, string providerUserId, string userName, IList <Claim> claims, string firstname = "", string lastname = "", string email = "", string gender = "") { var vm = new CreateExternalInputModel { UserName = userName, Provider = provider, ProviderUserId = providerUserId, Claims = claims }; if (!String.IsNullOrEmpty(firstname)) { vm.FirstName = firstname; } if (!String.IsNullOrEmpty(lastname)) { vm.LastName = lastname; } if (!String.IsNullOrEmpty(email)) { vm.UserName = vm.Email = email; } if (!String.IsNullOrEmpty(gender)) { vm.Gender = gender == "F" ? Gender.Female : Gender.Male; } return(View(vm)); }