public async Task GetProfileDataAsync(ProfileDataRequestContext context) { var subjectId = context.Subject.GetSubjectId(); var claimsForUser = (await _localUserService.GetUserClaimsBySubjectAsync(subjectId)).ToList(); context.AddRequestedClaims(claimsForUser.Select(c => new Claim(c.Type, c.Value)).ToList()); }
public async Task GetProfileDataAsync(ProfileDataRequestContext context) { var subjectId = context.Subject.GetSubjectId(); var claimsForUser = (await _localUserService.GetUserClaimsBySubjectAsync(subjectId)) .ToList(); var user = await _localUserService.GetUserBySubjectAsync(subjectId); var claims = new List <Claim>(); if (user != null) { if (!String.IsNullOrEmpty(user?.FirstName)) { claims.Add(new Claim("given_name", user.FirstName)); } if (!String.IsNullOrEmpty(user?.LastName)) { claims.Add(new Claim("family_name", user.LastName)); } if (!String.IsNullOrEmpty(user?.UserName)) { claims.Add(new Claim("name", user.UserName)); } if (!String.IsNullOrEmpty(user?.Email)) { claims.Add(new Claim("email", user.Email)); } if (context.RequestedClaimTypes.Contains("role")) { foreach (var userUserRole in user.Roles) { claims.Add(new Claim("role", userUserRole.Name)); } } } context.AddRequestedClaims(claims); context.AddRequestedClaims( claimsForUser.Select(c => new Claim(c.Type, c.Value)).ToList()); }