Table of Contents

Class ClaimsPrincipalExtensions

Namespace
SEBT.Portal.Core.Utilities
Assembly
SEBT.Portal.Core.dll

Extension methods for reading portal-specific values from System.Security.Claims.ClaimsPrincipal.

public static class ClaimsPrincipalExtensions
Inheritance
object
ClaimsPrincipalExtensions

Methods

GetUserEmail(ClaimsPrincipal)

Extracts the user's email address from the JWT claims. Checks the long-form System.Security.Claims.ClaimTypes.Email first (written by JwtTokenService) then the short-form email. Returns null when absent — OIDC users whose IdP didn't include an email claim legitimately have no email.

public static string? GetUserEmail(this ClaimsPrincipal principal)

Parameters

principal ClaimsPrincipal

Returns

string

GetUserId(ClaimsPrincipal)

Extracts the portal's internal user ID from the authenticated JWT's sub claim. Returns null when the claim is absent or does not parse to a Guid (e.g. an unauthenticated principal, a malformed token, or a legacy int-valued sub from before the UUID migration — those are treated as invalid and require re-authentication).

public static Guid? GetUserId(this ClaimsPrincipal principal)

Parameters

principal ClaimsPrincipal

Returns

Guid?

GetUserPhone(ClaimsPrincipal)

Extracts the user's phone number from the JWT claims. Checks phone first (OTP-flow users) then phone_number (OIDC IdP passthrough). Returns null when absent.

public static string? GetUserPhone(this ClaimsPrincipal principal)

Parameters

principal ClaimsPrincipal

Returns

string