public ActionResult LogOnAsync(LogOnModel model, string returnUrl) { string errorMessage = null; if (ModelState.IsValid && _webSecurity.Login(model.UserName, model.Password, model.RememberMe)) { if (StoreHelper.IsUserAuthorized(model.UserName, out errorMessage)) { if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { UserHelper.OnPostLogon(model.UserName); return Redirect(returnUrl); } var res = new JavaScriptResult { Script = "location.reload();" }; return res; } } // If we got this far, something failed, redisplay form ModelState.AddModelError("", string.IsNullOrEmpty(errorMessage) ? "The user name or password provided is incorrect." : errorMessage); return PartialView(model); }
public ActionResult LogOn(LogOnModel model, string returnUrl) { string errorMessage = null; if (ModelState.IsValid) { if (string.IsNullOrEmpty(model.ImpersonatedUserName)) { if (_webSecurity.Login(model.UserName, model.Password, model.RememberMe) && StoreHelper.IsUserAuthorized(model.UserName, out errorMessage)) { UserHelper.OnPostLogon(model.UserName); return RedirectToLocal(returnUrl); } } else { if (_webSecurity.LoginAs(model.ImpersonatedUserName, model.UserName, model.Password, out errorMessage, model.RememberMe) && StoreHelper.IsUserAuthorized(model.UserName, out errorMessage) && StoreHelper.IsUserAuthorized(model.ImpersonatedUserName, out errorMessage)) { UserHelper.OnPostLogon(model.ImpersonatedUserName, model.UserName); return RedirectToLocal(returnUrl); } } } errorMessage = string.IsNullOrEmpty(errorMessage) ? "The user name or password provided is incorrect.".Localize() : errorMessage.Localize(); // If we got this far, something failed, redisplay form ModelState.AddModelError("", errorMessage); return View(model); }
public ActionResult LogOn(string returnUrl, string loginAs) { var model = new LogOnModel(); if (!string.IsNullOrEmpty(loginAs)) { model.ImpersonatedUserName = loginAs; } ViewBag.ReturnUrl = returnUrl; return View(model); }