89 lines
3.4 KiB
Plaintext
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");
|
|
}
|
|
} |