通过Id获取用户不会返回

时间:2016-04-29 14:29:34

标签: c# azure azure-ad-graph-api

我已成功连接到Azure AD(至少我希望如此,无法详细说明),现在我正在尝试获取用户的一些详细信息。但是逐步调试器不会继续执行以下行:

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

直到这里,我没有抛出任何错误而且函数没有返回 - 这告诉我什么?如何进一步调试问题?

2 个答案:

答案 0 :(得分:1)

调试时你会发现什么:

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

如何连接Azure AD?确保你获得准确的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());

答案 1 :(得分:0)

请勿忘记使用等待关键字在某处等待结果,同时指定方法为 async ,以便异步运行

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