2015-09-08 27 views
8

Tôi đang cố truy xuất danh sách (phân trang) của tất cả người dùng trong thư mục, với thuộc tính người quản lý được mở rộng. Khi tôi chạy truy vấn HTTP sau nó hoạt động như tôi muốn:

https://graph.windows.net/DOMAIN/users/?$expand=manager&api-version=2013-11-08 

Tuy nhiên tôi dường như không nắm bắt như thế nào để làm cho cùng một truy vấn với Azure AD Graph client. Đây là những gì tôi đang cố gắng:

var userResult = _activeDirectoryClient.Users.Expand(x => x.Manager).ExecuteAsync().Result; 
+0

phiên bản của Azure Thư viện AD Graph Khách hàng gì bạn đang sử dụng ? –

+0

Tôi đang sử dụng 2.1.1.0. Lúc đầu, tôi nghĩ rằng tôi đã sử dụng 2.0.something, nhưng sau đó tôi chuyển sang phiên bản mới nhất để không có kết quả. – svinto

Trả lời

4

tôi thích nghi sau từ ví dụ ở https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet/blob/master/GraphConsoleAppV3/Program.cs, xin vui lòng cung cấp cho nó một shot:

\t   List<IUser> usersList = null; 
 
      IPagedCollection<IUser> searchResults = null; 
 
      try 
 
      { 
 
       IUserCollection userCollection = activeDirectoryClient.Users; 
 
       userResult = userCollection.ExecuteAsync().Result; 
 
       usersList = searchResults.CurrentPage.ToList(); 
 
      } 
 
      catch (Exception e) 
 
      { 
 
       Console.WriteLine("\nError getting User {0} {1}", e.Message, 
 
        e.InnerException != null ? e.InnerException.Message : ""); 
 
      } 
 

 
      if (usersList != null && usersList.Count > 0) 
 
      { 
 
       do 
 
       { 
 
        usersList = searchResults.CurrentPage.ToList(); 
 
        foreach (IUser user in usersList) 
 
        { 
 
         Console.WriteLine("User DisplayName: {0} UPN: {1} Manager: {2}", 
 
          user.DisplayName, user.UserPrincipalName, user.Manager); 
 
        } 
 
        searchResults = searchResults.GetNextPageAsync().Result; 
 
       } while (searchResults != null); 
 
      } 
 
      else 
 
      { 
 
       Console.WriteLine("No users found"); 
 
      }

+0

Mẫu thiết lập trình quản lý ngay trước khi nó tìm nạp trình quản lý và không có mã để mở rộng thuộc tính người quản lý. Bởi vì điều này tôi không hiểu làm thế nào điều này sẽ giúp tôi. – svinto

+0

Xin lỗi, tôi không nghĩ rằng tôi đã rõ ràng trong mô tả của tôi: mẫu bên ngoài là một điểm tham chiếu - Tôi đã tùy chỉnh một phần của nó (những gì bạn thấy trên màn hình ở đây) để đạt được yêu cầu của bạn. –

2

Các GraphClient không thực hiện tất cả của các tính năng trong Graph API.
tính năng mới đang được bổ sung vào GraphClient theo thời gian và sẽ được công bố trên blog của nhóm phát AAD:

http://blogs.msdn.com/b/aadgraphteam/

Và bản cập nhật sẽ có sẵn trong gói NuGet (Thư viện Khách hàng Microsoft Azure Active Directory Graph).

Bạn có thể làm những gì bạn cần bằng cách làm Http các cuộc gọi đến các url bạn có trong câu hỏi và nhận được phản hồi trở lại như Json như thế này:

using (var client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri("https://graph.windows.net/"); 
    client.DefaultRequestHeaders.Accept.Clear(); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

    HttpResponseMessage response = await client.GetAsync("DOMAIN/users/?$expand=manager&api-version=2013-11-08"); 
    if (response.IsSuccessStatusCode) 
    { 
     // TODO: Deserialize the response here... 
    } 
} 
Các vấn đề liên quan