2014-12-30 25 views
5

Thư viện Graph Client azure đã được cập nhật ngày 22 tháng 12 và phương pháp thêm người dùng vào nhóm đã được sửa.Thư viện Azure GraphClient xóa Người dùng khỏi Nhóm

Azure Active Directory Graph Client 2.0 - Context is not currently tracking the entity

Nhưng bạn có thể xóa người dùng khỏi nhóm không?

Tôi đã thử phương pháp này:

{groupObject}.Members.Remove({entityObject} as DirectoryObject); 
await myGroup.UpdateAsync(); 

Nó không thất bại nhưng người dùng sẽ không bị xóa khỏi nhóm.

Trả lời

12

Tôi đã tìm thấy giải pháp thay thế. Có thể điều này sẽ giúp:

public void RemoveUserFromGroup(Group group, User user) 
    { 
      var internalGroup = _activeDirectoryClient.Context.CreateQuery<GraphClient.Internal.Group>("groups/" + group.ObjectId).ToList().First(); 

      var internalUser = _activeDirectoryClient.Context.CreateQuery<GraphClient.Internal.User>("users/" + user.ObjectId).ToList().First(); 

      _activeDirectoryClient.Context.DeleteLink(internalGroup, "members", internalUser); 
      _activeDirectoryClient.Context.SaveChanges();   
    } 
+1

Đã thử hai cách đầu tiên, một trong thư viện và tiếp theo cuộc gọi api được cung cấp trên các trang microsoft. Cả hai đều không hoạt động. Ví dụ trên làm việc hoàn hảo, cảm ơn bạn Tomas! – Mario

+0

đã làm việc cho tôi theo nhóm có hơn 20 thành viên – Canela

3

Tôi gặp phải sự cố tương tự và có thể chẩn đoán nó. Vấn đề tôi tin phụ thuộc vào cách nhóm được truy xuất - cho dù các thành viên của nhóm có được bao gồm hay không; bạn có thể sử dụng mệnh đề .Expand() cho điều này.

Ví dụ, sau không công việc:

group = (Group)(await _activeDirectoryClient.Groups.Where(g => g.ObjectId == groupId).Expand(g => g.Members).ExecuteSingleAsync()); 
user = (User)(await _activeDirectoryClient.Users.Where(u => u.ObjectId == userId).ExecuteSingleAsync()); 

group.Members.Remove(user); 
await group.UpdateAsync(); 

Lưu ý, tuy nhiên, rằng .Expand() hoạt động được giới hạn đến 20 đối tượng, vì vậy trong nhiều trường hợp, giải pháp từ Tomáš là có lẽ an toàn hơn vào lúc này.

Các vấn đề liên quan