@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
@if (!string.IsNullOrWhiteSpace(_inviteToken)) { Bitte melde dich an, um die Club-Einladung anzunehmen. } @if (_registered) { Registrierung erfolgreich! Bitte anmelden. } @if (!string.IsNullOrWhiteSpace(_error)) { @_error } @if (_demoEnabled) { Demo-Zugang: @_demoEmail / @_demoPassword / @_demoClub } Anmeldung Anmelden Noch kein Konto? Registrieren Passwort vergessen?
@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("Bootstrap:Demo:Enabled"); if (_demoEnabled) { _demoEmail = Configuration["Bootstrap:Demo:Email"] ?? "demo@koogle.de"; _demoPassword = Configuration["Bootstrap:Demo:Password"] ?? "demo123"; _demoClub = Configuration["Bootstrap:Demo:LoginName"] ?? "demo"; } } }