Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <Query Kind="Program">
- <Reference><RuntimeDirectory>\System.DirectoryServices.dll</Reference>
- <Reference><RuntimeDirectory>\System.Configuration.dll</Reference>
- <Namespace>System.DirectoryServices</Namespace>
- </Query>
- void Main()
- {
- List<UserDetailsViewModel> value = GetUserDetailsByGroupPath("LDAP://DC=acctprov,DC=loc", "a");
- value.Count().Dump();
- }
- public static List<UserDetailsViewModel> GetUserDetailsByGroupPath(string path, string lastNameLetterFilter = null)
- {
- List<UserDetailsViewModel> results = new List<UserDetailsViewModel>();
- using (var entry = new DirectoryEntry(path))
- {
- var searcher = new DirectorySearcher(entry)
- {
- Filter = string.Format("(&(objectCategory=person)(objectClass=user)(memberOf=*)(sn={0}*))", lastNameLetterFilter ?? "")
- };
- searcher.PropertiesToLoad.Add("objectguid");
- searcher.PropertiesToLoad.Add("displayname");
- searcher.PropertiesToLoad.Add("givenname");
- searcher.PropertiesToLoad.Add("sn");
- searcher.PageSize = 250;
- using (var searchResults = searcher.FindAll())
- {
- foreach (SearchResult user in searchResults)
- {
- UserDetailsViewModel uvm = new UserDetailsViewModel();
- uvm.Uid = new Guid((byte[]) user.Properties["objectguid"][0]).ToString();
- uvm.DisplayName = user.Properties["displayname"][0].ToString();
- uvm.FirstName = user.Properties["givenname"][0].ToString();
- //broken uvm.MiddleName = user.Properties["middlename"][0].ToString();
- uvm.LastName = user.Properties["sn"][0].ToString();
- results.Add(uvm);
- }
- }
- }
- return results.OrderBy(x => x.LastName).ToList();
- }
- public class UserDetailsViewModel
- {
- public string Uid {get;set;}
- public string DisplayName {get;set;}
- public string FirstName {get;set;}
- public string MiddleName {get;set;}
- public string LastName {get;set;}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement