Last week I was working on my blazor web app .net 8 project and everything was working fine. Now I come back and I can't login anymore. My login page is throwing an error.
Login.razor:
@page "/Account/Login"@layout EmptyLayout@attribute [AllowAnonymous]@using System.ComponentModel.DataAnnotations@using AVAZicht.Components.Layout@using Microsoft.AspNetCore.Authentication@using Microsoft.AspNetCore.Identity@using AVAZicht.Data@inject SignInManager<ApplicationUser> SignInManager@inject ILogger<Login> Logger@inject NavigationManager NavigationManager@inject IdentityRedirectManager RedirectManager<PageTitle>Log in</PageTitle><div class="container"><div class="row justify-content-md-center align-items-center vh-100"><div class="col-lg-4" align="center"><img src="images/ava_logo_transp.png" class="w-75 mb-3" /><section class="p-0"><StatusMessage Message="@errorMessage" /><EditForm Model="Input" method="post" OnValidSubmit="LoginUser" FormName="login"><DataAnnotationsValidator /><ValidationSummary class="text-danger" role="alert" /><div class="form-floating mb-3"><InputText @bind-Value="Input.Email" class="form-control" autocomplete="username" aria-required="true" placeholder="name@example.com" /><label for="email" class="form-label">Email</label><ValidationMessage For="() => Input.Email" class="text-danger" /></div><div class="form-floating mb-3"><InputText type="password" @bind-Value="Input.Password" class="form-control" autocomplete="current-password" aria-required="true" placeholder="password" /><label for="password" class="form-label">Password</label><ValidationMessage For="() => Input.Password" class="text-danger" /></div><div class="checkbox mb-3"><label class="form-label"><InputCheckbox @bind-Value="Input.RememberMe" class="darker-border-checkbox form-check-input" /> Ingelogd blijven</label></div><div><button type="submit" class="w-100 btn btn-lg btn-primary">Inloggen</button></div></EditForm></section></div></div></div>@code { private string? errorMessage; [CascadingParameter] private HttpContext HttpContext { get; set; } = default!; [SupplyParameterFromForm] private InputModel Input { get; set; } = new(); [SupplyParameterFromQuery] private string? ReturnUrl { get; set; } protected override async Task OnInitializedAsync() { if (HttpMethods.IsGet(HttpContext.Request.Method)) { // Clear the existing external cookie to ensure a clean login process await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); } } public async Task LoginUser() { // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, set lockoutOnFailure: true var result = await SignInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { Logger.LogInformation("User logged in."); RedirectManager.RedirectTo(ReturnUrl); } else if (result.RequiresTwoFactor) { RedirectManager.RedirectTo("Account/LoginWith2fa", new() { ["returnUrl"] = ReturnUrl, ["rememberMe"] = Input.RememberMe }); } else if (result.IsLockedOut) { Logger.LogWarning("User account locked out."); RedirectManager.RedirectTo("Account/Lockout"); } else { errorMessage = "Error: Invalid login attempt."; } } private sealed class InputModel { [Required] [EmailAddress] public string Email { get; set; } = ""; [Required] [DataType(DataType.Password)] public string Password { get; set; } = ""; [Display(Name = "Remember me?")] public bool RememberMe { get; set; } }}The error I get:
System.NullReferenceException: 'Object reference not set to an instance of an object.'AVAZicht.Components.Account.Pages.Login.HttpContext.get returned null.I created a clean Blazor Web App .net 8 project with individual accounts as authentication type and that works just fine. I've gone through every single page it uses, going to the login page.
Anyone any tips?
