Files
ARM64/eNavigator/eNavigatorUI/Authentication/NavigatorAuthenticationStateProvider.cs
2025-04-03 17:28:36 -04:00

33 lines
1.1 KiB
C#

using System.Security.Claims;
using eNavigator.Interfaces;
using eNavigator.Models;
using Microsoft.AspNetCore.Components.Authorization;
namespace eNavigator.Authentication
{
public class NavigatorAuthenticationStateProvider : AuthenticationStateProvider
{
private readonly IStateContainer stateContainer;
public NavigatorAuthenticationStateProvider(IStateContainer stateContainer)
{
this.stateContainer = stateContainer ?? throw new ArgumentNullException(nameof(stateContainer));
}
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
{
String accessToken = stateContainer.Coalesce<String>(StateStrings.Token, default(String));
bool authenticated = default == accessToken ? false : true;
ClaimsIdentity identity = authenticated
? new ClaimsIdentity(null, "Basic")
: new ClaimsIdentity();
ClaimsPrincipal principal = new ClaimsPrincipal(identity);
AuthenticationState authenticationState = new AuthenticationState(principal);
return await Task.FromResult(authenticationState);
}
}
}