示例#1
0
        internal AzureUserData GetCurrentUserInternal(JwtSecurityToken pToken = null)
        {
            if (pToken == null && (!IsCurrentUserAuthorized() || JwtIdToken == null))
            {
                return(null);
            }
            var claims = JwtIdToken.Claims.ToArray();

            EnsureClaimExists(claims, FirstNameClaimName);
            EnsureClaimExists(claims, LastNameClaimName);
            EnsureClaimExists(claims, DisplayNameClaimName);
            EnsureClaimExists(claims, EmailClaimName);
            EnsureClaimExists(claims, UserIdClaim);
            EnsureClaimExists(claims, "oid");       // we need this claim to make calls to AAD Graph

            var user = new AzureUserData()
            {
                AzureFirstName   = claims.FirstOrDefault(x => x.Type == FirstNameClaimName)?.Value,
                AzureLastName    = claims.FirstOrDefault(x => x.Type == LastNameClaimName)?.Value,
                AzureDisplayName = claims.FirstOrDefault(x => x.Type == DisplayNameClaimName)?.Value,
                Email            = claims.FirstOrDefault(x => x.Type == EmailClaimName)?.Value,
                Id = claims.FirstOrDefault(x => x.Type == UserIdClaim).Value
            };

            user.AzureDisplayName = $"{user.AzureFirstName} {user.AzureLastName}";
            return(user);
        }
        public override TUserData GetCurrentUser <TUserData>()
        {
            LoadTokenCookie(String.Empty);

            if (!IsCurrentUserAuthorized() || JwtSecurityToken == null)
            {
                return(null);
            }
            var claims = JwtSecurityToken.Claims.ToArray();
            var user   = new AzureUserData()
            {
                AzureFirstName   = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.GivenName)?.Value,
                AzureLastName    = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.FamilyName)?.Value,
                AzureDisplayName = claims.FirstOrDefault(x => x.Type == "name").Value,
                Email            = claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.UniqueName).Value,
                Id = claims.FirstOrDefault(x => x.Type == "oid").Value
            };

            return(user as TUserData);
        }