首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在.Net 4.0中,DirectorySearch能否以允许我翻页的方式返回LDAP结果?

在.Net 4.0中,DirectorySearcher 类可以用于查询LDAP目录,并且支持分页查询。以下是一个简单的示例代码:

代码语言:csharp
复制
using System;
using System.DirectoryServices;

public class LdapPagination
{
    public static void Main(string[] args)
    {
        string ldapPath = "LDAP://your-ldap-server";
        string userName = "your-username";
        string password = "your-password";

        DirectoryEntry entry = new DirectoryEntry(ldapPath, userName, password);
        DirectorySearcher searcher = new DirectorySearcher(entry);

        searcher.Filter = "(&(objectClass=user)(objectCategory=person))";
        searcher.PageSize = 10;
        searcher.PropertiesToLoad.Add("cn");
        searcher.PropertiesToLoad.Add("samaccountname");
        searcher.PropertiesToLoad.Add("mail");

        int totalCount = 0;
        int totalPages = 0;
        int currentPage = 0;

        while (true)
        {
            currentPage++;
            SearchResultCollection results = searcher.FindAll();

            if (results.Count == 0)
            {
                break;
            }

            totalCount += results.Count;
            totalPages++;

            Console.WriteLine("Page {0}:", currentPage);

            foreach (SearchResult result in results)
            {
                Console.WriteLine("{0}: {1}", result.Properties["cn"][0], result.Properties["samaccountname"][0]);
            }

            searcher.FindAll();
            searcher.VirtualList = results[results.Count - 1].VirtualListViewContext;
        }

        Console.WriteLine("Total count: {0}", totalCount);
        Console.WriteLine("Total pages: {0}", totalPages);
    }
}

在这个示例中,我们使用DirectorySearcher类来查询LDAP目录中的用户信息,并且设置了分页大小为10。在每次查询时,我们使用VirtualList属性来设置查询的起始位置,以便实现分页查询。

需要注意的是,分页查询可能会受到LDAP目录的限制,例如,如果目录中的对象数量很大,分页查询可能会变得非常慢。因此,在实际应用中,需要根据具体情况进行优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券