c# - 事件目录是否防止不在域中的客户端进行修改?

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

我有一个方法 AddUserToGroup 可以将用户添加到事件目录组。

我在未连接到包含用户和组的域 Controller 的计算机上调用该方法。

调用 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)
    {                
        //...
    }
}

最佳答案

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

关于c# - 事件目录是否防止不在域中的客户端进行修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162527/

相关文章:

c# - 如何在类的 Dispose 方法中取消订阅匿名函数?

.net - 为什么 Azure 服务总线不受防火墙和代理的影响?

delphi - 我的程序如何检测它是否在特定域上运行?

powershell - 根据Get-AdUser的结果设置AD用户的UPN

c# - 替换模板中字符串的最快方法

c# - FileStream.copyTo(Net.ConnectStream) 实习生会发生什么?

c# - 为什么 .net 6 中的 JWTBearer 不起作用?它不断返回 invalid_token

.net - 在 .NET 上使用 Bootstrap 的博客软件?

.net - 通过Telegram机器人发送sendDocument

c# - 是否有行为类似于 Active Directory 的权限和组的 C# 库?