Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. <Query Kind="Program">
  2. <Reference>&lt;RuntimeDirectory&gt;\System.DirectoryServices.dll</Reference>
  3. <Reference>&lt;RuntimeDirectory&gt;\System.Configuration.dll</Reference>
  4. <Namespace>System.DirectoryServices</Namespace>
  5. </Query>
  6.  
  7. void Main()
  8. {
  9. List<UserDetailsViewModel> value = GetUserDetailsByGroupPath("LDAP://DC=acctprov,DC=loc", "a");
  10.  
  11. value.Count().Dump();
  12. }
  13.  
  14. public static List<UserDetailsViewModel> GetUserDetailsByGroupPath(string path, string lastNameLetterFilter = null)
  15. {
  16. List<UserDetailsViewModel> results = new List<UserDetailsViewModel>();
  17.  
  18. using (var entry = new DirectoryEntry(path))
  19. {
  20. var searcher = new DirectorySearcher(entry)
  21. {
  22. Filter = string.Format("(&(objectCategory=person)(objectClass=user)(memberOf=*)(sn={0}*))", lastNameLetterFilter ?? "")
  23. };
  24.  
  25. searcher.PropertiesToLoad.Add("objectguid");
  26. searcher.PropertiesToLoad.Add("displayname");
  27. searcher.PropertiesToLoad.Add("givenname");
  28. searcher.PropertiesToLoad.Add("sn");
  29. searcher.PageSize = 250;
  30.  
  31. using (var searchResults = searcher.FindAll())
  32. {
  33. foreach (SearchResult user in searchResults)
  34. {
  35. UserDetailsViewModel uvm = new UserDetailsViewModel();
  36. uvm.Uid = new Guid((byte[]) user.Properties["objectguid"][0]).ToString();
  37. uvm.DisplayName = user.Properties["displayname"][0].ToString();
  38. uvm.FirstName = user.Properties["givenname"][0].ToString();
  39. //broken uvm.MiddleName = user.Properties["middlename"][0].ToString();
  40. uvm.LastName = user.Properties["sn"][0].ToString();
  41.  
  42. results.Add(uvm);
  43. }
  44. }
  45. }
  46.  
  47. return results.OrderBy(x => x.LastName).ToList();
  48. }
  49.  
  50. public class UserDetailsViewModel
  51. {
  52. public string Uid {get;set;}
  53.  
  54. public string DisplayName {get;set;}
  55.  
  56. public string FirstName {get;set;}
  57.  
  58. public string MiddleName {get;set;}
  59.  
  60. public string LastName {get;set;}
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement