Files
2022-04-12 14:26:09 +02:00

77 lines
2.0 KiB
Plaintext

@using BlaServApp.UI.Components
@using System.Security.Claims
@using Microsoft.AspNetCore.Components.Authorization
@using BlaServApp.UI.Data
@inject MessageService AppMessages
@inject AuthenticationStateProvider AuthenticationStateProvider
<div class="row pt-3">
<div class="col-3">
<i class="fas fa-user-alt"></i> <b>@userName</b>
</div>
<div class="col-6 text-center h4">
<span class="@PageIcon" aria-hidden="true"></span> @PageName
</div>
<div class="col-3 text-right">
@if (ShowSearch)
{
<SearchMod></SearchMod>
}
</div>
</div>
@code {
[CascadingParameter(Name = "ShowSearch")]
private bool ShowSearch { get; set; }
private string userName = "";
private string PageName { get; set; }
private string PageIcon { get; set; }
protected override async Task OnInitializedAsync()
{
await forceReload();
}
protected override void OnInitialized()
{
AppMessages.EA_PageUpdated += OnPageUpdate;
}
public void OnPageUpdate()
{
PageName = AppMessages.PageName;
PageIcon = AppMessages.PageIcon;
InvokeAsync(() =>
{
StateHasChanged();
});
}
public void Dispose()
{
AppMessages.EA_PageUpdated -= OnPageUpdate;
}
private async Task forceReload()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
if (user.Identity.IsAuthenticated)
{
userName = $"{user.Identity.Name}";
}
else
{
userName = "N.A.";
}
}
}
@* // Vedere anche:
// https://docs.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-5.0#:~:text=Blazor%20uses%20the%20existing%20ASP.NET%20Core%20authentication%20mechanisms,all%20client-side%20code%20can%20be%20modified%20by%20users
// https://docs.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-5.0*@