Ciao a tutti,
cerco di spiegare brevemente qual'è il mio problema con un applicazione Blazor Server (.NET Core 5) che sto realizzando e che integra anche l'autenticazione tramite Identity.
Una volta loggato riesco a recuperare le info sull'utente all'interno del componente Blazor utilizzando il seguente codice:
@inject AuthenticationStateProvider AuthenticationStateProvider
...
...
@code {
protected override async Task OnInitializedAsynct()
{
...
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
...
}
}
Dove in Startup.cs ho configurato quanto segue:
public void ConfigureServices(IServiceCollection services){
...
services.AddIdentity<Utenti, IdentityRole>().AddDefaultUI().AddEntityFrameworkStores<CoreDbContext>().AddDefaultTokenProviders();
...
services.AddHttpContextAccessor();
services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<Utenti>>();
...
}
Se provo a recuperare le info utente all'interno di una WebAPI ottengo sempre un oggetto nullo...ho fatto diversi tentativi tramite dependency injection utilizzando sia HttpContextAccessor e sia UserManager ma ho notato che in entrambi i casi HttpContext.User praticamente è vuoto e quindi non riesco ad accedere alle info utente (oltre ad essere necessarie per vari motivi nelle logiche che sto implementando è anche necessario qualora volessi rendere accessibili o meno determinati endpoint).
Spero che qualcuno possa aiutarmi a capire cosa devo modificare nel codice per fare in modo che possa recuperare le info sull'utente loggato in qualsiasi punto dell'applicazione.
Grazie in anticipo!!!