10

Here is a sample of my code

var domainContext = new PrincipalContext(ContextType.Domain, "domain_server_ip",  
            "domain_admin_username", "domain_admin_password");
var group = GroupPrincipal.FindByIdentity(domainContext, "mygroup");
var users = group.Members.Where(member => names.Contains(member.Name))
            .ToList();
users.ForEach(u => group.Members.Remove(u));
group.Save(domainContext); // <-- Here I get the error

Same error if I try to get user groups

var user = UserPrincipal.FindByIdentity(domainContext, "username");
var gps = user.GetGroups(domainContext).ToList(); // <-- Here I get the error

I tried using ContextOptions.SimpleBind in connection, but nothing changes.
I've also tried setting a container name in connection, but again nothing changes.

Please note that I'm able to retrieve the group and its members... so I don't understand why I can't save the group or read user groups.

4

2 回答 2

4

尝试将您正在查询的域控制器的 IP 地址(在第一行 - domain_server_ip)添加为网卡 IP 设置中的第一个 DNS 服务器。(从这里借来的)

于 2016-01-28T15:37:58.850 回答
0

我有同样的问题。

我们案例中的问题是目标是外部域服务器。对于某些请求,.net 广告库似乎从外部 AD 服务器(服务器为自己解析的服务器)中明确获取 FQDN,并且在所有情况下都不尊重您作为 PrincipalContext ctor 名称提供的 FQDN 或 ip。

所以我的客户在 x.Domain1 中,外部广告服务器 (server1.x.Domain2) 用于域 x.Domain2。

Domain1 的标准 dns 将 AdServer 解析为 server1.x.Domain1。这个 Dns 不知道 Domain2。这就是问题所在。

要解决这个问题,你有恕我直言 3 选择

  1. 从外部广告服务器添加 ip 作为您的主要 dns(不要忘记在此之后启用/禁用适配器)(不是我们的选项)
  2. 编辑主机文件并添加 2 个条目:(适用于测试,但没有生产选项)
    IpofDomain2Server server1.x.Domain2
    IpofDomain2Server x.Domain2
  3. 与基础设施对话,为 Domain1 中的 Domain2 添加上面的 DNS 条目(Dns 转发?)
于 2018-12-06T13:00:30.393 回答