Beispiel #1
0
        public async Task <IActionResult> Login(LoginViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Validate Captcha Code
            if (!Captcha.ValidateCaptchaCode(model.CaptchaCode, HttpContext))
            {
                TempData[Constants.ErrorMessage] = Messages.InvalidCaptchaCode;
                return(View(model));
            }


            string errorMessage;
            Admin  account;

            if (adminsService.CheckLogin(model.UserName, model.Password, out errorMessage, out account))
            {
                var sessionUser = mapper.Map <AdminSessionUser>(account);
                sessionUser.PermissionsList = GetUserActivePermissions(account.PermissionGroups);

                await sessionService.LoginUser(HttpContext, sessionUser, model.RememberMe);

                return(RedirectToAction("Index", "Dashboard"));
            }
            else
            {
                TempData[Constants.ErrorMessage] = errorMessage;
                return(View(model));
            }
        }