public async Task <IActionResult> OnGetAsync(string username, string password) { string returnUrl = Url.Content("~/"); try { // Clear the existing external cookie await HttpContext .SignOutAsync( CookieAuthenticationDefaults.AuthenticationScheme); } catch { } if (_rentalContext.VerifyUserCredentials(username, password)) { User user = await _rentalContext.GetUserByUsername(username); var claims = new List <Claim> { new Claim(ClaimTypes.Name, user.Username), new Claim(ClaimTypes.Role, user.Role), }; var claimsIdentity = new ClaimsIdentity( claims, CookieAuthenticationDefaults.AuthenticationScheme); var authProperties = new AuthenticationProperties { IsPersistent = true, RedirectUri = this.Request.Host.Value }; try { await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties); } catch (Exception ex) { string error = ex.Message; } } return(LocalRedirect(returnUrl)); }