a ViewComponent has both
public System.Security.Principal.IPrincipal User { get; }
public System.Security.Claims.ClaimsPrincipal UserClaimsPrincipal { get; }
and a Controller only has:
public System.Security.Claims.ClaimsPrincipal User { get; }
note: a ClaimsPrincipal is an IPrincipal implementation that included claims, so any ClaimsPrincipal is an IPrincipal. old asp.net 4.5* standardized on ClaimsPrincipal and asp.net core controllers followed this. Razor page simple authentication does not require claims, so it supports both.