2017-02-19 1 views
1

J'interroge l'API Graph sur AAD pour obtenir des informations sur l'appartenance à un groupe. De là, je récupère une chaîne JSON contenant un ou plusieurs groupes auxquels appartient l'utilisateur. Je sais que je peux désosser une structure et la dé-sérialiser, mais les structures de l'API Graph sont-elles disponibles en tant que type de contrat que je peux exploiter? J'ai trouvé des exemples de requêtes sur l'API Graph qui obtiennent les données de chaîne brute, mais je pourrais vraiment utiliser un exemple simple où quelqu'un extrait les informations brutes (par exemple l'ID du groupe ou le nom du groupe) et l'utilise dans un structure.Extrait des données de la requête API Graph en C#

+0

Serait-il possible de donner un exemple du JSON que vous recevez, et de la structure que vous souhaitez en conséquence? Je pense qu'un exemple solide aiderait à clarifier ce que vous cherchez. :) –

Répondre

0

créer une classe d'utilisateur comme ci-dessous

public class ActiveDirectoryUser 
    { 
     public bool accountEnabled { get; set; } 
     public List<SignInName> signInNames { get; set; } 
     public string creationType { get; set; } 
     public string displayName { get; set; } 
     public string mailNickname { get; set; } 

     [JsonProperty("passwordProfile", NullValueHandling = NullValueHandling.Ignore)] 
     public PasswordProfile PasswordProfile { get; set; } 

     [JsonProperty("passwordPolicies", NullValueHandling = NullValueHandling.Ignore)] 
     public string PasswordPolicies { get; set; } 

     public string city { get; set; } 
     public object country { get; set; } 
     public object facsimileTelephoneNumber { get; set; } 
     public string givenName { get; set; } 
     public object mail { get; set; } 
     public object mobile { get; set; } 
     //public List<object> otherMails { get; set; } 
     public string postalCode { get; set; } 
     public object preferredLanguage { get; set; } 
     public string state { get; set; } 
     public object streetAddress { get; set; } 
     public string surname { get; set; } 
     public Guid objectId { get; set; } 
     public object telephoneNumber { get; set; } 


    } 

    public class SignInName 
    { 
     public string type { get; set; } 
     public string value { get; set; } 
    } 

    public class PasswordProfile 
    { 
     public string password { get; set; } 
     public bool forceChangePasswordNextLogin { get; set; } 
    } 

Lors de l'obtention de la réponse de l'AD, l'utilisation newtonsoft.json à sérialiser la classe correspondante comme ci-dessous.

var response = await httpClient.SendAsync(request); 

if (response.IsSuccessStatusCode) 
{ 
    var result = response.Content.ReadAsStringAsync().Result;           
    return JsonConvert.DeserializeObject<ActiveDirectoryUser>(result); 
} 

Trick est JsonConvert.DeserializeObject <> (suite);