public async Task <IActionResult> Login(LoginInputVM model) { if (ModelState.IsValid) { // check password bool correctPassword = await _userDataService.CheckUserPassword(model.Username, model.Password); if (!correctPassword) { ModelState.AddModelError("", AuthenticationOptions.InvalidCredentialsErrorMessage); return(await Login(Request.Query["returnUrl"])); } // get user object var user = await _userDataService.GetUserByUsername(model.Username); await LogUserIn(user, model.RememberLogin); Microsoft.Extensions.Primitives.StringValues returnUrl = ""; if (Request.Query.TryGetValue("returnUrl", out returnUrl)) { return(Redirect(Request.Query["returnUrl"])); } return(RedirectToAction("index", "home")); } ModelState.AddModelError("", AuthenticationOptions.InvalidCredentialsErrorMessage); return(await Login(Request.Query["returnUrl"])); }