예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
 public ActionResult LogOn(string returnUrl, string loginAs)
 {
     var model = new LogOnModel();
     if (!string.IsNullOrEmpty(loginAs))
     {
         model.ImpersonatedUserName = loginAs;
     }
     ViewBag.ReturnUrl = returnUrl;
     return View(model);
 }