Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>helper class and enum</p> <pre><code>public enum ActiveDirectoryObjectClass { Computer, User, Domain, Group, } public static class ActiveDirectorySearcher { public static string GetCurrentDomainName() { string result; using (Domain domain = Domain.GetCurrentDomain()) { result = domain.Name; } return result; } public static IEnumerable&lt;T&gt; Select&lt;T&gt;( ActiveDirectoryObjectClass activeDirectoryObjectClass, Func&lt;DirectoryEntry, ActiveDirectoryObjectClass, bool&gt; condition, Func&lt;DirectoryEntry, T&gt; selector ) { List&lt;T&gt; list = new List&lt;T&gt;(); using (Domain domain = Domain.GetCurrentDomain()) using (DirectoryEntry root = domain.GetDirectoryEntry()) { string filter = string.Format("(objectClass={0})", activeDirectoryObjectClass); using (DirectorySearcher searcher = new DirectorySearcher(filter)) { searcher.SearchRoot = root; searcher.SearchScope = SearchScope.Subtree; using (SearchResultCollection result = searcher.FindAll()) { foreach (SearchResult item in result) { using (DirectoryEntry entry = item.GetDirectoryEntry()) { if (condition(entry, activeDirectoryObjectClass)) { list.Add(selector(entry)); } } } } } } return list; } } </code></pre> <p>how to use</p> <pre><code> public IEnumerable&lt;User&gt; GetUsers() { return ActiveDirectorySearcher.Select( ActiveDirectoryObjectClass.User, (entry, adObjectClass) =&gt; string.Compare(entry.SchemaClassName, adObjectClass.ToString(), StringComparison.InvariantCultureIgnoreCase) == 0, _ =&gt; new User { Name = _.Name.Substring(3), Domain = ActiveDirectorySearcher.GetCurrentDomainName(), }); } </code></pre> <p>Note: User in sample - custom class with properties Name, Domain, etc.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload