Files
StandManager/StandManager/Components/Pages/Management/Login.razor
2025-12-01 15:15:05 +01:00

89 lines
3.4 KiB
Plaintext

@rendermode InteractiveServer
@layout PublicLayout
@page "/management/login"
@using System.Security.Claims
@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Identity
@using OAService.Domain.Entita
@using StandManager.Components.Layout
@using StandManager.Domain.Entita
@using StandManager.Model
@using StandManager.Service.Interfaces
@using Microsoft.AspNetCore.Http
@inject NavigationManager Navigation
@inject IHttpContextAccessor HttpContextAccessor
@inject HttpClient Http
@inject UserManager<ApplicationUser> UserManager
@inject IUserStore<ApplicationUser> UserStore
@inject SignInManager<ApplicationUser> SignInManager
<div class="page page-center">
<div class="container container-tight py-4">
<div class="text-center mb-4">
</div>
<div class="card card-md">
<div class="card-body">
<h2 class="h2 text-center mb-4">Accedi</h2>
<EditForm Model="model" OnValidSubmit="HandleValidSubmit" FormName="loginForm">
<DataAnnotationsValidator/>
<div class="mb-3">
<label class="form-label">Email</label>
<InputText class="form-control" @bind-Value="model!.Email"/>
<ValidationMessage For="@(() => model!.Email)"/>
</div>
<div class="mb-3">
<label class="form-label">Password</label>
<InputText class="form-control" @bind-Value="model!.Password" type="password"/>
<ValidationMessage For="@(() => model!.Password)"/>
</div>
<button type="submit" class="btn btn-primary w-100">
Accedi
</button>
@if (!string.IsNullOrEmpty(errorMessage))
{
<div class="alert alert-danger mt-3">@errorMessage</div>
}
</EditForm>
</div>
</div>
</div>
</div>
@code {
[SupplyParameterFromForm]
private LoginModel? model { get; set; }
private string? errorMessage;
protected override void OnInitialized() => model ??= new();
private async Task HandleValidSubmit()
{
var u = UserManager.Users.FirstOrDefault();
var result = await SignInManager.CheckPasswordSignInAsync(u, "test123pwd@", lockoutOnFailure: false);
if (result.Succeeded)
{
await SignInManager.SignInAsync(u, isPersistent: true, "standmanager");
}
Navigation.NavigateTo("management/Dashboard");
// var response = await Http.PostAsJsonAsync("/management/adminLogin", model);
// if (!response.IsSuccessStatusCode)
// {
// // leggiamo il messaggio dall'endpoint (opzionale)
// var msg = await response.Content.ReadAsStringAsync();
// errorMessage = string.IsNullOrWhiteSpace(msg)
// ? "Credenziali non valide."
// : msg;
// return;
// }
// var u = await _managerService.UtenteService.RicercaPer(x => x.Email == model!.Email);
// await SignInManager.SignInAsync(new ApplicationUser(), new AuthenticationProperties { IsPersistent = false });
// // Login ok → vai al management
// Navigation.NavigateTo("management/Dashboard");
}
}