public async Task <IActionResult> Register(RegisterViewModel registerViewModel) { if (ModelState.IsValid) { var user = new KPMUser { UserName = registerViewModel.UserName, Email = registerViewModel.Email, FirstName = registerViewModel.FirstName, LastName = registerViewModel.LastName, PhoneNumber = registerViewModel.PhoneNumber }; IdentityResult result = await userManager.CreateAsync(user, registerViewModel.Password); if (result.Succeeded) { await signIn.SignInAsync(user, isPersistent : false); return(RedirectToAction("index", "home")); } foreach (IdentityError error in result.Errors) { ModelState.AddModelError("", error.Description); } } return(View(registerViewModel)); }
public async Task <IActionResult> FacebookResponse(string returnUrl = "/") { ExternalLoginInfo info = await signIn.GetExternalLoginInfoAsync(); if (info == null) { return(RedirectToAction("index", "home")); } var result = await signIn.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false); if (result.Succeeded) { return(Redirect(returnUrl)); } else { var user = new KPMUser { Email = info.Principal.FindFirst(ClaimTypes.Email).Value, PhoneNumber = info.Principal.FindFirst(ClaimTypes.HomePhone).Value }; IdentityResult identityResult = await userManager.CreateAsync(user); if (identityResult.Succeeded) { identityResult = await userManager.AddLoginAsync(user, info); if (identityResult.Succeeded) { await signIn.SignInAsync(user, false); return(Redirect(returnUrl)); } } return(View(returnUrl)); } }