Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }