public IEnumerable<User> GetMembers(SharedFolder sharedFolder) { List<User> members = new List<User>(); using (PrincipalContext context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["Domain"], GetClientDN())) { GroupPrincipal group = new GroupPrincipal(context, sharedFolder.Name); foreach(UserPrincipal adUser in group.Members) { members.Add(userManager.Find(adUser.SamAccountName)); } } return members; }
public IEnumerable<SharedFolder> GetSharedFolders(User user) { List<SharedFolder> sharedFolders = new List<SharedFolder>(); using (PrincipalContext context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["Domain"], GetClientDN())) { GroupPrincipal queryFilter = new GroupPrincipal(context); PrincipalSearcher searcher = new PrincipalSearcher(queryFilter); PrincipalSearchResult<Principal> results = searcher.FindAll(); foreach (GroupPrincipal result in results) { if (result.Members.Contains(context, IdentityType.SamAccountName, user.UserName)) { SharedFolder sharedFolder = new SharedFolder() { Name = result.Name, DistinguishedName = result.DistinguishedName, Path = "Shared/BI" }; sharedFolders.Add(sharedFolder); } } } return sharedFolders; }