@using System.Security.Claims
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor _httpContextAccessor
@inject HttpClient Http
@if (User.Identity.Name != null)
{
You are logged in as: @GivenName @Surname
Logout
}
else
{
Login
}
@code {
private ClaimsPrincipal User;
private string GivenName;
private string Surname;
private string Avatar;
protected override void OnInitialized()
{
base.OnInitialized();
try
{
// Set the user to determine if they are logged in
User = _httpContextAccessor.HttpContext.User;
// Try to get the GivenName
var givenName =
_httpContextAccessor.HttpContext.User
.FindFirst(ClaimTypes.GivenName);
if (givenName != null)
{
GivenName = givenName.Value;
}
else
{
GivenName = User.Identity.Name;
}
// Try to get the Surname
var surname =
_httpContextAccessor.HttpContext.User
.FindFirst(ClaimTypes.Surname);
if (surname != null)
{
Surname = surname.Value;
}
else
{
Surname = "";
}
// Try to get Avatar
var avatar =
_httpContextAccessor.HttpContext.User
.FindFirst("urn:google:image");
if (avatar != null)
{
Avatar = avatar.Value;
}
else
{
Avatar = "";
}
}
catch { }
}
}