从活动目录(C# 中的 System.DirectoryServices.AccountManagement)检索组下的
本文关键字:AccountManagement 检索 DirectoryServices System 活动 中的 | 更新日期: 2023-09-27 18:33:15
从活动目录中检索组下的用户时出现错误。错误描述为{"无法检索有关域的信息 (1355)"}。已尝试使用 .Net 4.0 和 .Net 4.5。我收到错误的行用错误消息注释。
public List<DirectoryUser> GetUsersUnderGroup(string groupName)
{
var directoryUserList = new List<DirectoryUser>();
string directoryServerIp="192.168.1.xxx";
string ouName="xxxOuName";
string domainComponents="DC=xxxComopnent1,DC=xxxComponent2";
string directoryAdminUserId="directoryAdminuser";
string directoryAdminPassword="directoryAdminPassword";
using (var principalContext = principalContext = new PrincipalContext(ContextType.Domain, directoryServerIp, string.Format("OU={0},{1}", ouName, domainComponents), directoryAdminUserId, directoryAdminPassword);)
{
using (var group = GroupPrincipal.FindByIdentity(principalContext, groupName))
{
if (group != null)
{
var users = group.GetMembers(true);
//Works fine till the above line. variable users is having not null value but
//exception while iterating through the loop.Following is the exception
//{"Information about the domain could not be retrieved (1355)."}
foreach(var user in users)
{
Console.Write(user.DistinguishedName);
}
}
}
}
return directoryUserList;
}
用于创建 PrincipalContext 的代码在其他场景中运行良好(例如获取组列表和 OU 等)
本文介绍问题的原因和可能的解决方案:链接。基本上,如果您不是从域控制器所在的计算机运行代码,则必须使用 DirectoryEntry 类。本文应该可以帮助您理解该类:链接