gpt4 book ai didi

c# - 获取分页 DirectorySearcher 的搜索结果总数

转载 作者:行者123 更新时间:2023-11-30 21:55:29 24 4
gpt4 key购买 nike

我正在使用 DirectorySearch 在 Active Directory 中搜索对象。我将 VirtualListView 属性设置为只返回几个值:

using System;
using System.DirectoryServices;

namespace Testbed
{
internal class Testbed
{
private static void Main()
{
DoSearch();
Console.ReadKey();
}

private static void DoSearch()
{
var entry = new DirectoryEntry("LDAP://server/DC=mydomain,DC=com", @"USERNAME", "PASSWORD");
var searcher = new DirectorySearcher(entry)
{
PageSize = 0,
SearchScope = SearchScope.Subtree,
Filter = "(Description=J_*)",
Sort = new SortOption("Description", SortDirection.Ascending),
VirtualListView = new DirectoryVirtualListView(0, 9, 1)
};

SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results)
{
Console.WriteLine(result.Properties["Description"][0]);
}
Console.WriteLine("Found: " + results.Count);
}
}
}

有没有一种方法可以在不执行显式DirectorySearch的情况下获取AD中查询的对象总数-“调用”相应的PageSize(例如500 )?

最佳答案

DirectoryVirtualListView 类中有一个ApproximateTotal 属性。您可以使用它,但请记住您应该在代码中的 foreach block 之后访问它。只需更改此行:

Console.WriteLine("Found: " + results.Count);

这个:

Console.WriteLine("Found: " + searcher.VirtualListView.ApproximateTotal);

全部完成!

关于c# - 获取分页 DirectorySearcher 的搜索结果总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32247599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com