我有以下方法用于在本地计算机(先完成)或当前林中搜索用户组。
public string FindUserGroup(string group)
{
//Search local computer
using (DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry()))
{
searcher.Filter = "(&(objectClass=group)(|(cn=" + group + ")(dn=" + group + ")))";
SearchResult result = searcher.FindOne();
if (result != null)
return TranslateDirectoryEntryPath(result.GetDirectoryEntry().Path);
}
//Search current forest
Forest forest = Forest.GetCurrentForest();
foreach (Domain domain1 in forest.Domains)
{
using (DirectorySearcher searcher = new DirectorySearcher(domain1.GetDirectoryEntry()))
{
searcher.Filter = "(&(objectClass=group)(|(cn=" + group + ")(dn=" + group + ")))";
SearchResult result = searcher.FindOne();
if (result != null)
return TranslateDirectoryEntryPath(result.GetDirectoryEntry().Path);
}
}
return string.Empty;
}
我的问题是我们作为一个例子说“domain.local”和“mydomain.local”,我当前的登录绑定到“domain.local”,然后使用下面将无法找到任何内容“mydomain.local”,即使我通过Windows用户界面也能够。
如果我不知道所有可查看的提供商,我怎样才能从我的计算机角度搜索所有可查看的提供商?我真的必须自己完成注册工作吗?
编辑:
当我在对象浏览器对话框中选择“位置”时,2个域中的一个区别是它们所处的“级别”,它布局为:
所以“mydomain.local”在所谓的“整个目录”之外出现,但我的计算机可以找到它,如果这有什么区别吗?
答案 0 :(得分:0)
我没有看到问题,因为此处的代码已经绑定到其他域。
foreach (Domain domain1 in forest.Domains)
{
using (DirectorySearcher searcher = new DirectorySearcher(domain1.GetDirectoryEntry()))
{
您是否试图说明以后您自己绑定DirectoryEntry,并且无法从其他域中找到对象?