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

时间:2016-01-28 15:21:01

标签: c# active-directory account-management

以下是我的代码示例

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

如果我尝试获取用户组

,则会出现同样的错误
var user = UserPrincipal.FindByIdentity(domainContext, "username");
var gps = user.GetGroups(domainContext).ToList(); // <-- Here I get the error

我尝试使用ContextOptions.SimpleBind连接,但没有任何变化 我也尝试过连接设置容器名称,但是没有任何改变。

请注意我能够检索该组及其成员...所以我不明白为什么我无法保存该组或读取用户组。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我有同样的问题。

在我们的案例中,问题在于目标是外部域服务器。 .net广告库似乎为某些请求从外部AD服务器(服务器自行解决的问题)中显式获取了FQDN,并且在所有情况下都不尊重您作为PrincipalContext ctor给出的FQDN或IP。< / p>

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

Domain1的标准dns将AdServer解析为server1.x.Domain1。这个Dns不了解Domain2。那就是问题。

要解决此问题,您有恕我直言3个选择

  1. 将来自外部Ad Server的IP添加为您的主要DNS(不要忘记在那之后启用/禁用适配器)(这不是我们的选择)
  2. 编辑主机文件并添加2个条目:(适用于测试,但不适用于生产)
    ipofDomain2Server server1.x.Domain2
    ipofDomain2Server x.Domain2
  3. 与基础架构商谈,为Domain1中的Domain2添加上述DNS条目(Dns转发?)