@page "/account/login" @using Microsoft.AspNetCore.Components.Authorization @using Microsoft.AspNetCore.WebUtilities @inject NavigationManager NavigationManager @inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Antiforgery @inject IHttpContextAccessor HttpContextAccessor @inject IConfiguration Configuration
@code { private string _returnUrl = "/dashboard"; private string? _error; private string _antiToken = ""; private bool _registered; private string? _inviteToken; private bool _demoEnabled; private string _demoEmail = ""; private string _demoPassword = ""; private string _demoClub = ""; protected override void OnInitialized() { var uri = NavigationManager.ToAbsoluteUri(NavigationManager.Uri); var query = QueryHelpers.ParseQuery(uri.Query); if (query.TryGetValue("returnUrl", out var ru)) _returnUrl = ru!; if (query.TryGetValue("error", out var err)) { _error = "Login fehlgeschlagen"; } if (query.TryGetValue("registered", out _)) { _registered = true; } if (query.TryGetValue("invite", out var invite)) { _inviteToken = invite.ToString(); // After login, redirect to join by invite _returnUrl = $"/club/join/{_inviteToken}"; } // Antiforgery Token generieren (klassischer MVC Token) var http = HttpContextAccessor.HttpContext!; var tokens = Antiforgery.GetAndStoreTokens(http); _antiToken = tokens.RequestToken!; // Demo credentials from configuration _demoEnabled = Configuration.GetValue