Sniper

犯强汉者,虽远必诛!

博客园 首页 新随笔 联系 订阅 管理

在Active Directory中搜索
1.SearchRoot
 指定搜索从哪里开始,如当前节点等
 DirectorySearcher search = new DirectorySearcher();
 search.SearchRoot = de;
2.过滤器
 过滤条件是用双引号引起来的括号中的内容如"(&(objectClass=user)(|(description=Auth*)(name=m*)))"
 searcher.Filter="(&(objectClass=user)(|(description=Auth*)(name=m*)))"
3.搜索范围
 search.SearchScope = SearchScope.Subtree;
 取值如下:Subtree,Base(只搜索对象中的属性,至多可以得到一个对象),OneLevel(在基对象的子集中搜索,基对象不搜索)
 
4.加载的属性PropertiesToLoad
 对象的很多属性都不太重要,此处定义了加载到缓存中的对象属性,若没有指定,默认是对象的Path和Name属性
 search.PropertiesToLoad.Add("name");
 search.PropertiesToLoad.Add("description");
 search.PropertiesToLoad.Add("giveName");
 search.PropertiesToLoad.Add("wWWWHomePage");
 
5.对结果进行排序,Sort函数有两个参数,第一个是要排序的字段,第二个为排序方式SortOption有两个值,Ascending和Descending
 search.Sort = new SortOption("givenName",SortDirection.Ascending);

6.开始搜索,FindAll()查找返回一个SearchResultCollection,FindOne()返回一个简单的SearchResult对象
  SearchResultCollection results = searcher.FindAll();
  
  如下代码:


 1  SearchResultCollection resultCol = searcher.FindAll();
 2  foreach( SearchResult result in resultCol )
 3  {
 4    ResultPropertyCollection props = result.Properties;
 5    foreachstring propName in props.PropertyNames )
 6    {
 7     Console.Write(propName+":");
 8     Console.WriteLine(props[propName][0]);
 9    }

10    Console.WriteLine();
11  }


 

posted on 2005-10-16 00:38  Sniper  阅读(1483)  评论(2编辑  收藏  举报