Ejemplo n.º 1
0
        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());
        }