Beispiel #1
0
        public void SetUserInfo(ApplicationUser account)
        {
            var token = account.AccessList.Where(t => Regex.IsMatch(t.Scope, @"user\.read", RegexOptions.IgnoreCase)).FirstOrDefault();

            if (token == null)
            {
                return;
            }
            MSGraphUser user = null;
            var         url  = $"https://graph.microsoft.com/v1.0/me/";

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token.AuthTokens.access_token);
                var    res        = httpClient.GetAsync(url).Result;
                string resultJson = res.Content.ReadAsStringAsync().Result;
                if (res.IsSuccessStatusCode)
                {
                    //user = JsonConvert.DeserializeObject<MSGraphUser>(resultJson);
                    user = JsonSerializer.Deserialize <MSGraphUser>(resultJson);
                    account.businessPhones    = user.businessPhones;
                    account.displayName       = user.displayName;
                    account.givenName         = user.givenName;
                    account.id                = user.id;
                    account.jobTitle          = user.jobTitle;
                    account.mail              = user.mail;
                    account.mobilePhone       = user.mobilePhone;
                    account.officeLocation    = user.officeLocation;
                    account.preferredLanguage = user.preferredLanguage;
                    account.surname           = user.surname;
                    account.userPrincipalName = user.userPrincipalName;
                }
            }
            return;
        }
        public async Task OnGetAsync()
        {
            // Create the Graph service client with a DefaultAzureCredential which gets an access token using the available Managed Identity
            var credential = new DefaultAzureCredential();
            var token      = credential.GetToken(
                new Azure.Core.TokenRequestContext(
                    new[] { "https://graph.microsoft.com/.default" }));

            var accessToken        = token.Token;
            var graphServiceClient = new GraphServiceClient(
                new DelegateAuthenticationProvider((requestMessage) =>
            {
                requestMessage
                .Headers
                .Authorization = new AuthenticationHeaderValue("bearer", accessToken);

                return(Task.CompletedTask);
            }));

            List <MSGraphUser> msGraphUsers = new List <MSGraphUser>();

            try
            {
                var users = await graphServiceClient.Users.Request().GetAsync();

                foreach (var u in users)
                {
                    MSGraphUser user = new MSGraphUser();
                    user.userPrincipalName = u.UserPrincipalName;
                    user.displayName       = u.DisplayName;
                    user.mail     = u.Mail;
                    user.jobTitle = u.JobTitle;

                    msGraphUsers.Add(user);
                }
            }
            catch (Exception ex)
            {
                string msg = ex.Message;
            }

            Users = msGraphUsers;
        }
Beispiel #3
0
        public string GetUser(string token)
        {
            string      result = string.Empty;
            MSGraphUser user   = null;
            var         url    = $"https://graph.microsoft.com/v1.0/me/";

            using (var httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
                var    res        = httpClient.GetAsync(url).Result;
                string resultJson = res.Content.ReadAsStringAsync().Result;
                if (res.IsSuccessStatusCode)
                {
                    //user = JsonConvert.DeserializeObject<MSGraphUser>(resultJson);
                    user   = JsonSerializer.Deserialize <MSGraphUser>(resultJson);
                    result = user.displayName;
                }
            }
            return(result);
        }