public async Task<ActionResult> LoginFacebook(LoginViewModel model) { if (!ModelState.IsValid) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(new { success = false, responseText = "Invalid parameters" }, JsonRequestBehavior.AllowGet); } var user = UserManager.Users.Where(n => n.UserName == model.UserName); if (!user.Any()) { var createResult = await UserManager.CreateAsync(new ApplicationUser { UserName = model.UserName }, "socialMedia"); var userProfileRepo = new UserProfileRepository(); userProfileRepo.CreateSync(new Data.Model.UserProfile { Username = model.UserName, Password = "******", Email = model.Email, isFacebookUser = false, DateRegistered = DateTime.UtcNow }); UserManager.Create(new ApplicationUser { UserName = model.UserName }, model.Password); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.UserName, "socialMedia", model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: return Json(new { success = true, responseText = "Added." }, JsonRequestBehavior.AllowGet); break; // return RedirectToLocal(returnUrl); ////case SignInStatus.LockedOut: // return View("Lockout"); //case SignInStatus.RequiresVerification: // return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); //case SignInStatus.Failure: //default: // ModelState.AddModelError("", "Invalid login attempt."); // return View(model); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return Json(new { success = false, responseText = "Invalid parameters" }, JsonRequestBehavior.AllowGet); }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false); //var returnUrl = ""; switch (result) { case SignInStatus.Success: return RedirectToAction("Index", "Dashboard"); return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return View("Lockout"); case SignInStatus.RequiresVerification: return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return View(model); } }