我正在连接到LDAP,我得到的只是用户类型的类对象,当我不做任何排序时,我只想得到可分辨的名称,(我注释排序的行)结果很好,用户数是13。我可以打印它们,但它们不是按升序带来的,所以我做了基于distinguishedName的排序,当我将这些行添加到代码中时,它给了我一个空的searchResults集合。
我不知道为什么,为什么当我进行排序时,数据会消失,而当我停止排序时,数据却在那里。排序有什么问题?
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];发布于 2012-05-02 15:28:19
在DataView中进行排序,如下所示:
DataTable dtUsers = new DataTable("Users");
dtUsers.Columns.Add("distinguishedName");
DataView view = dtUsers.DefaultView;
view.Sort = "distinguishedName";发布于 2012-06-28 04:32:58
FWIW,我的建议通常是不对服务器端进行排序。客户端可以很容易地排序,并保持DC的排序负载。在少数情况下,您确实需要服务器进行排序,但如果您可以避免这种情况,我会这样做。你的管理员会感谢你的。
https://stackoverflow.com/questions/10408883
复制相似问题