Active Directory是否阻止不在域上的客户端进行修改?

时间:2010-01-29 14:31:41

标签: c# .net active-directory active-directory-group

我有一个 AddUserToGroup 方法,可以将用户添加到活动目录组。

我在没有连接到包含用户和组的域控制器的计算机上调用该方法。

当调用group.Save()时抛出PrincipalOperationException:

无法检索有关域的信息(1355)。

AD是否阻止未向域注册的客户端进行修改?我可以从同一个客户端愉快地查询域(例如,返回组中的用户)。

将用户添加到群组的方法:

public static void AddUserToGroup(string userId, 
                                  string groupName)
{
    try
    {
        using (var pc = GetPrincipalContextFromConfig())
        {
            var group = GroupPrincipal.FindByIdentity(pc, groupName);
            try
            {
                group.Members.Add(pc, IdentityType.Guid, userId);
                group.Save();
            }
            catch (PrincipalExistsException e)
            {
              //...
            }                                                                
        }
    }
    catch (DirectoryServicesCOMException e)
    {                
        //...
    }
}

1 个答案:

答案 0 :(得分:2)

无论您的应用程序运行的是什么ID,都需要对AD进行“写入”访问。几乎任何ID都可以查询AD,但只有明确授予ID的ID才能写入。