我已成功连接到Azure AD(至少我希望如此,无法详细说明),现在我正在尝试获取用户的一些详细信息。但是逐步调试器不会继续执行以下行:
IUser result = azureDirectoryClient.Users.GetByObjectId(someId).ExecuteAsync().Result;
直到这里,我没有抛出任何错误而且函数没有返回 - 这告诉我什么?如何进一步调试问题?
答案 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);
}