public JsonResult JsonLogin(LoginModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); return Json(new { success = true, redirect = returnUrl }); } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed return Json(new { errors = GetErrorsFromModelState() }); }
public void TestJsonLogin() { const string testUserName = "******"; const string testPassword = "******"; const bool testRememberMe = false; const string testUrl = "TestUrl"; var loginModel = new LoginModel { Password = testPassword, RememberMe = testRememberMe, UserName = testUserName }; var controller = new AccountController(); JsonResult jsonResult; using (ShimsContext.Create()) { ShimMembership.ValidateUserStringString = (userName, password) => { Assert.AreEqual(testUserName, userName); Assert.AreEqual(testPassword, password); return true; }; //Sets up a detour for FormsAuthentication.SetAuthCookie to our mocked implementation ShimFormsAuthentication.SetAuthCookieStringBoolean = (userName, rememberMe) => { Assert.AreEqual(testUserName, userName); Assert.AreEqual(testRememberMe, rememberMe); }; jsonResult = controller.JsonLogin(loginModel, testUrl); dynamic data = jsonResult.Data; Assert.AreEqual(true, data.success); Assert.AreEqual(testUrl, data.redirect); } }
public ActionResult Login(LoginModel model, string returnUrl) { if (ModelState.IsValid) { if (Membership.ValidateUser(model.UserName, model.Password)) { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Home"); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } // If we got this far, something failed, redisplay form return View(model); }