예제 #1
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (callcenterEntities db = new callcenterEntities())
            {
                ObjectParameter Output = new ObjectParameter("responseMessage", typeof(string));
                db.uspValidateUser(model.Username, model.Password, Output);

                if (Convert.ToString(Output.Value).Contains("Success"))
                {
                    var validuser = db.userinfoes.FirstOrDefault(i => i.LoginName == model.Username);
                    Session["UserID"]    = validuser.UserId;
                    Session["LoginName"] = validuser.LoginName;
                    Session["UserName"]  = validuser.UserName;
                    Session["UserEmail"] = validuser.UserEmail;
                    if (validuser.IsAdmin)
                    {
                        Session["IsAdmin"] = true;
                    }
                    else
                    {
                        Session["IsAdmin"] = false;
                    }
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    ModelState.AddModelError("", Convert.ToString(Output.Value));
                    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.Email, model.Password, model.RememberMe, shouldLockout: false);
            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        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);
            //}
        }