public async Task <IActionResult> Authenticate() { if (!ModelState.IsValid) { return(null); } string login = this.LoginModel.Login; string password = this.LoginModel.Password; User authenticatedUser = this._context.AuthenticateUser(login, PasswordUtils.EncodePassword(password, "")); if (authenticatedUser != null) { await SetAuthenticatedUser(authenticatedUser.Login, false); string returnUrl = this.LoginModel.ReturnUrl; string controller = "Home"; string action = "Index"; if (returnUrl != null && returnUrl.StartsWith("/")) { string[] parts = returnUrl.Substring(1).Split('/'); controller = parts[0]; if (parts.Length >= 2) { action = parts[1]; } } return(this.RedirectToActionPermanent(action, controller)); } return(View("Index", new LoginErrorViewModel("Usuário ou senha inválidos", null))); }