2017-02-19 15 views
1

Я запрашиваю API-интерфейс Graph для AAD для информации о членстве в группе. Из этого я возвращаю строку JSON, содержащую одну или несколько групп, к которым принадлежит пользователь. Я знаю, что могу перестроить структуру и де-сериализовать ее, но структуры Graph API доступны в качестве своего рода контракта, который я могу использовать?Извлечь данные из запроса API Графа в C#

Я нашел примеры запросов к API-интерфейсу Graph, которые получают необработанные строковые данные, но я мог бы действительно использовать простой пример, когда кто-то извлекает необработанную информацию (например, идентификатор группы или имя группы) и использует ее в состав.

+0

Можно ли привести пример JSON, который вы получаете, и структуру, которую вы хотели бы получить? Я думаю, что хороший пример поможет прояснить то, что вы ищете. :) –

ответ

0

Создать класс пользователей, как показано ниже

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; } 
    } 

При получении ответа от AD, использование newtonsoft.json сериализовать к соответствующему классу, как показано ниже.

var response = await httpClient.SendAsync(request); 

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

Кошелек является JsonConvert.DeserializeObject <> (результат);