using System.DirectoryServices; namespace DigitalData.Core.Contracts.Application { public interface IDirectorySearchService : IServiceBase { public string ServerName { get; } public string Root { get; } string SearchRootPath { get; } Dictionary CustomSearchFilters { get; } bool ValidateCredentials(string dirEntryUsername, string dirEntryPassword); IServiceResult> FindAll(DirectoryEntry searchRoot, string filter, SearchScope searchScope = SearchScope.Subtree, int sizeLimit = 5000, params string[] properties); IServiceResult> FindAllByUserCache(string username, string filter, SearchScope searchScope = SearchScope.Subtree, int sizeLimit = 5000, params string[] properties); void SetSearchRootCache(string username, string password); DirectoryEntry? GetSearchRootCache(string username); } }