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)); } }