我正在尝试查找各种目录中的目录服务器。 对于Active Directory,我发现了两个选择:
使用System.DirectoryServices.ActiveDirectory.Domain
public static IEnumerable<string> GetDomainControllers()
{
var domain = Domain.GetDomain(new DirectoryContext(
DirectoryContextType.Domain,
"domain.com",
"user@domain.com",
"password"));
foreach (DomainController controller in domain.DomainControllers)
yield return controller.Name;
}
使用DirectorySearcher:
public static IEnumerable<string> GetDomainControllers()
{
using (DirectoryEntry entry = new
DirectoryEntry("ldap://domain.com/dc=domain,dc=com", "user@domain.com", "password"))
using (DirectorySearcher searcher = new DirectorySearcher(entry,
"(&(objectCategory=computer)(|(primaryGroupID=516)(primaryGroupID=521)))"))
{
foreach (SearchResult result in searcher.FindAll())
yield return result.Properties["dnshostname"][0].ToString();
}
}
但是,这些都不与Sun ONE目录一起使用。 Domain类似乎是特定于AD的,我找不到任何与sun查询具有相同行为的LDAP查询sun ONE。
我正在寻找一种枚举目录服务器的解决方案,最好是在C#中
预先感谢