AuthServer.Infrastructure.Services.IdentityClaimsProfileService.GetProfileDataAsync C# (CSharp) Method

GetProfileDataAsync() public method

public GetProfileDataAsync ( ProfileDataRequestContext context ) : Task
context ProfileDataRequestContext
return Task
            public async Task GetProfileDataAsync(ProfileDataRequestContext context)
            {
                var sub = context.Subject.GetSubjectId();
                var user = await _userManager.FindByIdAsync(sub);
                var principal = await _claimsFactory.CreateAsync(user);
    
                var claims = principal.Claims.ToList();
                claims = claims.Where(claim => context.RequestedClaimTypes.Contains(claim.Type)).ToList();
                claims.Add(new Claim(JwtClaimTypes.GivenName, user.Name));
                claims.Add(new Claim(IdentityServerConstants.StandardScopes.Email, user.Email));
                // note: to dynamically add roles (ie. for users other than consumers - simply look them up by sub id
                claims.Add(new Claim(ClaimTypes.Role, Roles.Consumer)); // need this for role-based authorization - https://stackoverflow.com/questions/40844310/role-based-authorization-with-identityserver4
    
                context.IssuedClaims = claims;
            }