基于可分辨名称排序时出错

本文关键字:排序 出错 于可 | 更新日期: 2023-09-27 18:33:04

我正在连接到LDAP,我只得到user类型的classobject,我只想获取可分辨名称,当我不进行任何排序时,(我评论排序行)结果来得不错,用户数量为13。 我可以将它们全部打印出来,但它们不是按升序排列的, 所以我根据 distinctedName 进行了排序,当我将这些行添加到代码中时,它会给我一个空的搜索结果集合。

我不知道为什么,为什么当我进行排序时,数据

会消失,当我停止排序时,数据就在那里。 排序有什么问题???

DirectoryEntry entry = new DirectoryEntry(_path, username, 
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=user)");
SortOption option = new SortOption("distinguishedName", System.DirectoryServices.SortDirection.Ascending);
mySearcher.Sort = option;
DataSet ds = new DataSet();
DataTable dtUsers = new DataTable("Users");
dtUsers.Columns.Add("distinguishedName");
SearchResultCollection ss = mySearcher.FindAll();
SearchResult a = ss[0];

基于可分辨名称排序时出错

在 DataView 中执行如下所示的排序:

DataTable dtUsers = new DataTable("Users");
dtUsers.Columns.Add("distinguishedName");
DataView view = dtUsers.DefaultView;
view.Sort = "distinguishedName";

FWIW,我的建议通常是不要对服务器端进行排序。客户端可以轻松排序并保持 DC 的排序负载。在某些情况下,您确实需要服务器进行排序,但如果可以避免它,我会的。您的管理员会感谢您。