/// <summary> /// Filters the claims based on the requested claim types and then adds them to the IssuedClaims collection. /// </summary> /// <param name="context">The context.</param> /// <param name="claims">The claims.</param> public static void AddRequestedClaims(this ProfileDataRequestContext context, IEnumerable <Claim> claims) { if (context.RequestedClaimTypes.Any()) { context.IssuedClaims.AddRange(context.FilterClaims(claims)); } }
public virtual async Task GetProfileDataAsync(ProfileDataRequestContext context) { var sub = context.Subject.GetSubjectId(); var user = await _userManager.FindByIdAsync(sub); var principal = await _claimsFactory.CreateAsync(user); context.FilterClaims(principal.Claims); }
public Task GetProfileDataAsync(ProfileDataRequestContext context) { var subjectId = context.Subject.GetSubjectId(); var user = this._users.FirstOrDefault(u => u.SubjectId == subjectId); if (user != null) { var claims = context.FilterClaims(user.Claims); context.AddRequestedClaims(claims); } return(Task.CompletedTask); }
public Task GetProfileDataAsync(ProfileDataRequestContext context) { var subjectId = context.Subject.GetSubjectId(); Logger.LogDebug("Getting profile data for subjectId: {subjectId}", subjectId); var user = this._userStore.FindBySubjectId(subjectId); if (user != null) { Logger.LogDebug("The user was found in store"); var claims = context.FilterClaims(user.Claims); context.AddRequestedClaims(claims); } return(Task.CompletedTask); }
public async Task GetProfileDataAsync(ProfileDataRequestContext context) { string sub = context.Subject?.GetSubjectId(); if (sub == null) { throw new Exception("No sub claim present"); } var user = await _userManager.FindByIdAsync(sub); if (user != null) { var identity = new ClaimsIdentity(); identity.AddClaims(user.Claims); var principal = new ClaimsPrincipal(identity); context.IssuedClaims = context.FilterClaims(principal.Claims.ToList()); } }