internal AzureUserData GetCurrentUserInternal(JwtSecurityToken pToken = null) { if (pToken == null && (!IsCurrentUserAuthorized() || JwtIdToken == null)) { return(null); } var claims = JwtIdToken.Claims.ToArray(); EnsureClaimExists(claims, FirstNameClaimName); EnsureClaimExists(claims, LastNameClaimName); EnsureClaimExists(claims, DisplayNameClaimName); EnsureClaimExists(claims, EmailClaimName); EnsureClaimExists(claims, UserIdClaim); EnsureClaimExists(claims, "oid"); // we need this claim to make calls to AAD Graph var user = new AzureUserData() { AzureFirstName = claims.FirstOrDefault(x => x.Type == FirstNameClaimName)?.Value, AzureLastName = claims.FirstOrDefault(x => x.Type == LastNameClaimName)?.Value, AzureDisplayName = claims.FirstOrDefault(x => x.Type == DisplayNameClaimName)?.Value, Email = claims.FirstOrDefault(x => x.Type == EmailClaimName)?.Value, Id = claims.FirstOrDefault(x => x.Type == UserIdClaim).Value }; user.AzureDisplayName = $"{user.AzureFirstName} {user.AzureLastName}"; return(user); }
public override TUserData GetCurrentUser <TUserData>() { LoadTokenCookie(String.Empty); if (!IsCurrentUserAuthorized() || JwtSecurityToken == null) { return(null); } var claims = JwtSecurityToken.Claims.ToArray(); var user = new AzureUserData() { AzureFirstName = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.GivenName)?.Value, AzureLastName = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.FamilyName)?.Value, AzureDisplayName = claims.FirstOrDefault(x => x.Type == "name").Value, Email = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.UniqueName).Value, Id = claims.FirstOrDefault(x => x.Type == "oid").Value }; return(user as TUserData); }