2015-11-13 4 views
1

У меня есть проблема с удалением пользователя из группы. У меня нет проблем с добавлением пользователя. Я не получаю никакой ошибки из myGroup.Members.Remove (пользователь как DirectoryObject) ;. Это ошибка?Azure Graph api client удалить участника из группы

ActiveDirectoryClient client = AuthenticationHelper.GetActiveDirectoryClient(); 
     User user = (User)await client.Users.GetByObjectId(userID).ExecuteAsync(); 
     IGroup myIGroup = await client.Groups.GetByObjectId(objectId).ExecuteAsync(); 
     Group myGroup = (Group)myIGroup; 
     if (myGroup != null && user != null) 
     { 
      try 
      { 
       switch (myAction) 
       { 
        case "Delete":        
         myGroup.Members.Remove(user as DirectoryObject); 
         break; 
        case "Add": 
         myGroup.Members.Add(user as DirectoryObject); 
         break; 
       } 
       await myGroup.UpdateAsync(); 

ответ

1

Попробуйте добавить Expand(x => x.Members) при получении группы. Я пробовал следующее:

public async Task<Result> RemoveFromGroup(string upn, string groupId) 
{ 
    try 
    { 
     var group = (AD.Group) await ADClient.Groups 
      .Where(x => x.ObjectId == groupId) 
      .Expand(x => x.Members) 
      .ExecuteSingleAsync(); 

     var user = (AD.User) await ADClient.Users 
      .Where(x => x.UserPrincipalName == upn) 
      .ExecuteSingleAsync(); 

     group.Members.Remove(user); 
     await group.UpdateAsync(); 
     return Result.Ok(); 
    } 
    catch (Exception ex) 
    { 
     return Result.Fail(new Error(ex.Message, null, ex)); 
    } 
} 

Это работает. Единственное различие - я получаю пользователя по его принципиальному имени, но в этом случае это не имеет значения.

Смежные вопросы