我正在尝试使用DomainServices类从我的Active Directory中检索OU列表。
这是我的代码:
public List<OrganizationalUnit> FindOrganizationalUnits(string domainName, string domainExtension, string parentOrganizationUnit)
{
string tmpDirectory = String.Format("LDAP://ou={0},dc={1},dc={2}",
parentOrganizationUnit,
domainName,
domainExtension
);
DirectoryEntry directory = new DirectoryEntry(tmpDirectory);
DirectorySearcher searcher = new DirectorySearcher(directory);
searcher.Filter = "(objectClass=organizationalUnit)";
searcher.SearchScope = SearchScope.Subtree;
searcher.PropertiesToLoad.Add("displayName");
var organizationalUnits = new List<OrganizationalUnit>();
foreach (SearchResult result in searcher.FindAll())
{
//I just create and return a new OrganizationalUnit object based on the SearchResult result.
organizationalUnits.Add(new OrganizationalUnit(result));
}
return organizationalUnits;
}
我是否需要在服务器端上设置一些配置,让我使用DirectoryServices来查询它的AD对象?
感谢您的帮助。
答案 0 :(得分:0)
您运行此代码的应用程序类型是什么?必须从经过身份验证的资源进行AD查询。您可以使用用户的当前凭据,也可以传入新的名称/密码。
服务通常没有任何问题,在LocalSystem下运行,但如果这是在IIS标准权限下运行的Web应用程序,则可能会导致问题。
尝试在实例化DirectoryEntry类时添加一些凭据。