以下是我的代码示例
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
连接,但没有任何变化
我也尝试过连接设置容器名称,但是没有任何改变。
请注意我能够检索该组及其成员...所以我不明白为什么我无法保存该组或读取用户组。
答案 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个选择