@page "/login" @layout AuthLayout @using Microsoft.AspNetCore.Identity @inject SignInManager SignInManager @inject NavigationManager Navigation Budgeteer — Sign In

Sign In

@if (!string.IsNullOrEmpty(errorMessage)) {
@errorMessage
}

Don't have an account? Register

@code { [SupplyParameterFromForm] private LoginModel Model { get; set; } = new(); private string? errorMessage; private async Task HandleLogin() { errorMessage = null; var result = await SignInManager.PasswordSignInAsync( Model.Email, Model.Password, isPersistent: false, lockoutOnFailure: false); if (result.Succeeded) { Navigation.NavigateTo("/", forceLoad: true); } else { errorMessage = "Invalid email or password."; } } private sealed class LoginModel { [System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Email is required")] [System.ComponentModel.DataAnnotations.EmailAddress] public string Email { get; set; } = string.Empty; [System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Password is required")] public string Password { get; set; } = string.Empty; } }