1

我无法从组中删除用户。添加用户我没有问题。我没有收到来自 myGroup.Members.Remove(user as DirectoryObject); 的任何错误。它是一个错误吗?

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();
4

1 回答 1

2

尝试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));
    }
}

有用。唯一的区别 - 我通过其主体名称获取用户,但在这种情况下并不重要。

于 2015-11-23T16:29:22.993 回答