Example #1
0
        public ActionResult Login(UserLogin model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            int  valid     = 0;
            User loginUser = _userFactory.AuthentiationLogin(model, ref valid);

            if (valid == 1 && loginUser.IsActive.Value)
            {
                // Set login session
                SetLoginState(loginUser);

                log.Info(string.Format("User {0} has logged at {1}", loginUser.UserName, DateTime.Now));

                // Redirect to home page
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ViewBag.Edit       = true;
                model.ErrorMessage = "Login fail, please contact webmaster for more information";
                switch (valid)
                {
                case 0:
                    ModelState.AddModelError(string.Empty, "Invalid username or password");
                    log.Warn(string.Format("User {0} try to login at {1}", model.UserName, DateTime.Now));
                    break;

                case 2:
                    ModelState.AddModelError(string.Empty, "User not active");
                    log.Warn(string.Format("Inactive user: {0} try to login at {1}", model.UserName, DateTime.Now));
                    break;

                case 3:
                    ModelState.AddModelError(string.Empty, DSEConstant.Error_Message_Default);
                    log.Error(string.Format("User: {0} try to login at {1} \n {2} ", model.UserName, DateTime.Now, loginUser.ErrorMessage));
                    break;
                }
                return(View(model));
            }
        }