Alexander
Alexander

Reputation: 20234

Fetching User by Id does not return

I have made a successful connection to Azure AD (at least I hope so, unable to tell the details), and now I am trying to get some user's details. But the step-through debugger does not proceed over the following line:

IUser result = azureDirectoryClient.Users.GetByObjectId(someId).ExecuteAsync().Result;

That I got until here, no error is thrown and the function does not return - what does that tell me? How can I debug the issue further?

Upvotes: 0

Views: 107

Answers (2)

Lily_user4045
Lily_user4045

Reputation: 793

What do you catch when you debug this:

 try
    {
    IUser result = azureDirectoryClient.Users.GetByObjectId(objectId).ExecuteAsync().Result;
    }
    catch(exception e)
    {
console.white(e.message)
    }

How do you connect to Azure AD? Make sure you get the accurate Accesstoken:

  public static string GetTokenForApplication()
        {
            AuthenticationContext authenticationContext = new AuthenticationContext(Constants.AuthString, false);
            // Config for OAuth client credentials 
            ClientCredential clientCred = new ClientCredential(Constants.ClientId, Constants.ClientSecret);
          AuthenticationResult authenticationResult = authenticationContext.AcquireToken(Constants.ResourceUrl, clientCred);
            string token = authenticationResult.AccessToken;
            return token;
        }
 ActiveDirectoryClient activeDirectoryClient = new ActiveDirectoryClient(new Uri(https://graph.windows.net, TenantId),
                async () => await GetTokenForApplication());

Upvotes: 1

Alegrowin
Alegrowin

Reputation: 331

Don't forget to wait for the result somewhere using the await Keyword, also specify that the method is async so it runs asynchronously

public async Task<ActionResult> SomeAction()
{
    IUser result = await azureDirectoryClient.Users.GetByObjectId(someId).ExecuteAsync();
    return View(result);
}

Upvotes: 0

Related Questions