public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Получение сведений о пользователе от внешнего поставщика входа var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email, IsNewUser = true }; var result = await UserManager.CreateAsync(user); await UserManager.AddToRoleAsync(user.Id, "group_member"); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { List <string> data = new List <string>(); foreach (var item in info.ExternalIdentity.Claims) { data.Add(item.Value); } ; data.RemoveAt(0); data.RemoveAt(2); StartAddUserViewModel us = new StartAddUserViewModel { Surname = data[1], Name = data[0] }; await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToLocal(Url.Action("AddUser", "User", us))); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return(View(model)); }
public ActionResult AddUser(StartAddUserViewModel data) { AddUserViewModel model = new AddUserViewModel() { AspUserId = User.Identity.GetUserId(), Name = data.Name, Surname = data.Surname }; return(View("AddUser", model)); }