2017-09-13 5 views
1

J'essaie d'interroger une extension de répertoire personnalisée qui a été ajoutée à notre objet utilisateur dans Azure AD. J'utilise la solution trouvée here.Comment obtenir une extension de répertoire dans Azure AD à l'aide de MS Graph

Je suis en mesure d'obtenir la propriété en utilisant UserProfileController et en mettant à jour le modèle pour avoir notre propriété d'extension personnalisée (voir les deux extraits de code ci-dessous).

Modèles/UserProfile.cs

public class UserProfile 
{ 
    public string DisplayName { get; set; } 
    public string GivenName { get; set; } 
    public string Surname { get; set; } 
    public string extension_ExtId_ExtName { get; set; } 
} 

Voir/UserProfile.cshtml

@model App.Models.UserProfile 
<h2>@ViewBag.Title.</h2> 
<table class="table table-bordered table-striped"> 
    <tr> 
     <td>Display Name</td> 
     <td>@Model.DisplayName</td> 
    </tr> 
    <tr> 

     <td>First Name</td> 
     <td>@Model.GivenName</td> 
    </tr> 
    <tr> 
     <td>Last Name</td> 
     <td>@Model.Surname</td> 
    </tr> 
    <tr> 
     <td>Employee Id</td> 
     <td>@Model.extension_ExtId_ExtName</td> 
    </tr> 
</table> 
@if (ViewBag.ErrorMessage == "AuthorizationRequired") 
{ 
    <p>You have to sign-in to see your profile. Click @Html.ActionLink("here", "Index", "UserProfile", new { reauth = true }, null) to sign-in.</p> 
} 
@if (ViewBag.ErrorMessage == "UnexpectedError") 
{ 
    <p>An unexpected error occurred while retrieving your profile. Please try again. You may need to sign-in.</p> 
} 

Mon objectif est d'avoir l'extension extension_ExtId_ExtName apparaissent sur une liste d'utilisateurs. J'essaie d'utiliser UsersController de la solution et afficher pour obtenir cette information, mais il semble que le modèle d'utilisateur Microsoft Graph API ne peut pas être modifié. Le modèle est défini sur IEnumerable<User> pour lequel les contrôles Microsoft Graph Client.

Comment puis-je ajouter mon extension personnalisée pour pouvoir la récupérer à partir de l'objet Utilisateur?

J'ai confirmé que je peux l'obtenir via l'objet utilisateur en allant au graphique Explorer et mettre mon URL de requête:

https://graph.microsoft.com/beta/users('{[email protected]}')?select=extension_EXTENSION-ID_extensionName

Merci

Répondre

0

Je pense qu'une partie du problème voici que vous confondez deux API différentes. Il y a le Microsoft Graph API et le Azure Active Directory Graph API; Ce sont deux API totalement différentes. Bien qu'il y ait beaucoup de chevauchement fonctionnel entre eux, les appels ne sont pas interchangeables entre eux.

Je vous suggère de jeter un oeil à ces échantillons API Microsoft Graph à la place:

+0

Je vois ce que vous dites et je suis Je passe maintenant en revue mon code car une partie de celui-ci fait référence à l'API MS Graph alors qu'une autre partie fait référence à Azure AD Graph API. Je préférerais utiliser MS Graph API dans mon projet, donc je vais me concentrer dans ce domaine. J'ai réalisé que mon UserProfileController repose sur MS Graph et UserController repose sur Azure AD. Je vous remercie. –

+0

Ok, j'ai essayé d'utiliser 'aspnet-snippets-example' et je l'ai fait fonctionner à merveille, mais maintenant je suis contre d'essayer d'extraire l'extension de répertoire personnalisée comme indiqué dans l'URL du graphique que j'ai posté plus tôt. Encore une fois, j'ai essayé de mettre à jour le ViewModel pour la solution afin d'inclure l'extension du répertoire, mais je n'ai pas pu l'obtenir car il référence l'objet Utilisateur graphique. Aidez-moi? –

+0

Je crois que vous recherchez la propriété 'Extensions' de [' User'] (https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph/Models/Generated /User.cs). –