public void GetEntry_ByPath_EntryCreatedByPath()
        {
            adapter.GetEntry("anypath");

            A.CallTo(() => directoryEntryFactory.Create("anypath",
                                                        serverConfig.Username,
                                                        serverConfig.Password,
                                                        serverConfig.AuthenticationTypes)).MustHaveHappened(Repeated.Exactly.Once);
        }
Пример #2
0
        public List <string> FindNetworkComputers()
        {
            var root = _directoryEntryFactory.Create("WinNT:");

            return((from IDirectoryEntry dom in root.Children
                    from IDirectoryEntry entry in dom.Children
                    where entry.SchemaClassName == "Computer"
                    select @"\\" + entry.Name).ToList());
        }
Пример #3
0
 protected virtual bool IsGroupNameAdministrators <T>(T member, string adGroup)
 {
     using (IDirectoryEntry memberEntry = _directoryEntryFactory.Create(member))
     {
         if (memberEntry.Name == adGroup)
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
        protected AuthorizationServiceBase(IDirectoryEntryFactory directoryEntryFactory, ISecurityService securityService, bool isLocalConnection)
        {
            VerifyArgument.IsNotNull("SecurityService", securityService);
            VerifyArgument.IsNotNull("DirectoryEntryFactory", directoryEntryFactory);
            _securityService = securityService;
            _securityService.Read();
            _isLocalConnection = isLocalConnection;
            _securityService.PermissionsChanged  += (s, e) => RaisePermissionsChanged();
            _securityService.PermissionsModified += (s, e) => OnPermissionsModified(e);
            _directoryEntryFactory = directoryEntryFactory;

            AreAdministratorsMembersOfWarewolfAdministrators = delegate
            {
                var adGroup = FindGroup(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null));
                using (var ad = directoryEntryFactory.Create("WinNT://" + Environment.MachineName + ",computer"))
                {
                    ad.Children.SchemaFilter.Add("group");
                    foreach (IDirectoryEntry dChildEntry in ad.Children)
                    {
                        if (dChildEntry.Name != "Warewolf Administrators")
                        {
                            continue;
                        }
                        var members = dChildEntry.Invoke("Members");

                        if (members == null)
                        {
                            continue;
                        }
                        foreach (var member in (IEnumerable)members)
                        {
                            if (IsGroupNameAdministrators(member, adGroup))
                            {
                                return(true);
                            }
                        }
                    }
                }

                return(false);
            };
        }
Пример #5
0
 private IDirectoryEntry GetEntry(string path, string username, string password)
 {
     return(directoryEntryFactory.Create(path, username, password, serverConfig.AuthenticationTypes));
 }