예제 #1
0
        public override async Task <IList <Claim> > GetClaimsAsync(string userId)
        {
            var user = await Store.FindByIdAsync(userId);

            var claims = await base.GetClaimsAsync(userId);

            if (user == null)
            {
                return(claims);
            }

            if (user.OrganisationId.HasValue)
            {
                claims.Add(new Claim(ClaimTypes.OrganisationId, user.OrganisationId.Value.ToString()));
            }

            claims.Add(new Claim(System.Security.Claims.ClaimTypes.Name, string.Format("{0} {1}", user.FirstName, user.Surname)));
            claims.Add(new Claim(System.Security.Claims.ClaimTypes.Email, user.Email));

            var userClaims = await claimsRepository.GetUserClaims(userId);

            foreach (var claim in userClaims)
            {
                claims.Add(claim);
            }

            return(claims);
        }