2016-04-29 13 views
0

Ich habe eine erfolgreiche Verbindung zu Azure AD (zumindest hoffe ich, nicht in der Lage, die Details zu sagen), und jetzt versuche ich, einige Benutzerdetails zu erhalten. Aber der Schritt Durch Debugger gehen nicht über die folgende Zeile ein:Abrufen von Benutzer nach ID gibt nicht zurück

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

Dass ich bis hier hätte, wird kein Fehler ausgelöst und die Funktion nicht zurück - was mir nicht sagen? Wie kann ich das Problem weiter debuggen?

+0

Wo ist der Code, der die asynchrone Rückgabe behandelt? – ChrisBint

Antwort

0

Vergessen Sie nicht irgendwo auf das Ergebnis zu warten, mit der erwarten Schlüsselwort, geben Sie auch, dass das Verfahren async so läuft es asynchron

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

Was fangen Sie, wenn Sie das Debuggen:

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

Wie verbinden Sie sich mit Azure AD? Stellen Sie sicher, dass Sie die genauen Accesstoken erhalten:

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()); 
Verwandte Themen