Reputation: 21
I have trouble to remove user from group. I have no problem with adding a user. I do not recieve any error from myGroup.Members.Remove(user as DirectoryObject);. Is it a bug?
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();
Upvotes: 1
Views: 1183
Reputation: 171
Try to add Expand(x => x.Members)
while getting group. I've tried the following:
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));
}
}
It works. The only difference - I get user by its principal name but it doesn't matter in that case.
Upvotes: 2