112 lines
3.2 KiB
Plaintext
112 lines
3.2 KiB
Plaintext
@page "/account/login"
|
|
|
|
@using Microsoft.AspNetCore.Components.Authorization
|
|
@using Microsoft.AspNetCore.WebUtilities
|
|
|
|
@inject NavigationManager NavigationManager
|
|
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Antiforgery
|
|
@inject IHttpContextAccessor HttpContextAccessor
|
|
|
|
|
|
<form method="post" action="/auth/login">
|
|
<!-- Hidden Fields -->
|
|
<input type="hidden" name="ReturnUrl" value="@_returnUrl" />
|
|
<input type="hidden" name="__RequestVerificationToken" value="@_antiToken" />
|
|
|
|
<MudPaper Class="pa-6" Elevation="4" MaxWidth="400px">
|
|
@if (_registered)
|
|
{
|
|
<MudAlert Severity="Severity.Success" Class="mb-3">Registrierung erfolgreich! Bitte anmelden.</MudAlert>
|
|
}
|
|
@if (!string.IsNullOrWhiteSpace(_error))
|
|
{
|
|
<MudAlert Severity="Severity.Error" Class="mb-3">@_error</MudAlert>
|
|
}
|
|
|
|
<MudText Typo="Typo.h5" Class="mb-4">
|
|
Anmeldung
|
|
</MudText>
|
|
|
|
<MudTextField T="string"
|
|
Name="Email"
|
|
Label="E-Mail"
|
|
Variant="Variant.Outlined"
|
|
Required="true"
|
|
InputType="InputType.Email"
|
|
AutoComplete="username"
|
|
Class="mb-3" />
|
|
|
|
<MudTextField T="string"
|
|
Name="Password"
|
|
Label="Passwort"
|
|
Variant="Variant.Outlined"
|
|
Required="true"
|
|
InputType="InputType.Password"
|
|
AutoComplete="current-password"
|
|
Class="mb-3" />
|
|
|
|
<MudTextField T="string"
|
|
Name="ClubName"
|
|
Label="Club"
|
|
Variant="Variant.Outlined"
|
|
Required="true"
|
|
Placeholder="Clubname"
|
|
Class="mb-3" />
|
|
|
|
<MudCheckBox T="bool"
|
|
Name="RememberMe"
|
|
Label="Angemeldet bleiben"
|
|
Value="true"
|
|
Class="mb-4" />
|
|
|
|
<MudButton
|
|
ButtonType="ButtonType.Submit"
|
|
Variant="Variant.Filled"
|
|
Color="Color.Primary"
|
|
FullWidth="true"
|
|
Class="mb-3">
|
|
Anmelden
|
|
</MudButton>
|
|
|
|
<MudStack Row="true" Justify="Justify.SpaceBetween" Class="mt-2">
|
|
<MudLink Href="/account/register" Typo="Typo.body2">
|
|
Noch kein Konto? Registrieren
|
|
</MudLink>
|
|
<MudLink Href="/account/forgot-password" Typo="Typo.body2">
|
|
Passwort vergessen?
|
|
</MudLink>
|
|
</MudStack>
|
|
|
|
</MudPaper>
|
|
</form>
|
|
|
|
|
|
@code {
|
|
private string _returnUrl = "/";
|
|
private string? _error;
|
|
private string _antiToken = "";
|
|
private bool _registered;
|
|
|
|
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;
|
|
}
|
|
|
|
// Antiforgery Token generieren (klassischer MVC Token)
|
|
var http = HttpContextAccessor.HttpContext!;
|
|
var tokens = Antiforgery.GetAndStoreTokens(http);
|
|
_antiToken = tokens.RequestToken!;
|
|
}
|
|
|
|
}
|