【发布时间】:2011-06-21 13:35:28
【问题描述】:
下面的代码让我获得了组中的用户,但它被返回了
"CN=johnson\,Tom,OU=Users,OU=Main,DC=company,DC=com"
我只想返回名字和姓氏。我怎样才能做到这一点?
DirectoryEntry ou = new DirectoryEntry();
DirectorySearcher src = new DirectorySearcher();
src.Filter = ("(&(objectClass=group)(CN=Gname))");
SearchResult res = src.FindOne();
if (res != null)
{
DirectoryEntry deGroup = new DirectoryEntry(res.Path);
PropertyCollection pcoll = deGroup.Properties;
foreach (object obj in deGroup.Properties["member"])
{
ListBox1.Items.Add(obj.ToString());
}
}
【问题讨论】:
-
以下并不是真正的答案,只是一个警告:将您的 DirectoryEntry、DirectorySearcher 尤其是任何 SearchResultCollections(例如,通过调用 DirectorySearcher.FindAll)包装在 using 语句中,或者使用 try/finally处理呼叫。 SearchResultCollections 不能被垃圾收集。在使用我在网上找到的一个没有 Dispose 任何东西的示例后,我花了几天时间寻找内存泄漏。彻底检查 MS 文档,了解搜索 Active Directory 所涉及的类
标签: c# .net visual-studio-2010 active-directory