Ejemplo n.º 1
0
        internal override bool Matches(DirectoryEntry de)
        {
            bool flag;

            if (de.Properties["objectSid"] == null || de.Properties["objectSid"].Count == 0)
            {
                return(false);
            }
            else
            {
                IEnumerator enumerator = this.propertiesToMatch.FiltersToApply.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        FilterBase current = (FilterBase)enumerator.Current;
                        QbeMatcher.FilterPropertyTableEntry item = (QbeMatcher.FilterPropertyTableEntry)QbeMatcher.filterPropertiesTable[current.GetType()];
                        if (item != null)
                        {
                            if (item.matcher(current, item.winNTPropertyName, de))
                            {
                                continue;
                            }
                            flag = false;
                            return(flag);
                        }
                        else
                        {
                            object[] externalForm = new object[1];
                            externalForm[0] = PropertyNamesExternal.GetExternalForm(current.PropertyName);
                            throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, StringResources.StoreCtxUnsupportedPropertyForQuery, externalForm));
                        }
                    }
                    return(true);
                }
                finally
                {
                    IDisposable disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                return(flag);
            }
        }
Ejemplo n.º 2
0
		static QbeMatcher()
		{
			object[,] matcherDelegate = new object[22, 3];
			matcherDelegate[0, 0] = typeof(DescriptionFilter);
			matcherDelegate[0, 1] = "Description";
			matcherDelegate[0, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
			matcherDelegate[1, 0] = typeof(DisplayNameFilter);
			matcherDelegate[1, 1] = "FullName";
			matcherDelegate[1, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
			matcherDelegate[2, 0] = typeof(SidFilter);
			matcherDelegate[2, 1] = "objectSid";
			matcherDelegate[2, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.SidMatcher);
			matcherDelegate[3, 0] = typeof(SamAccountNameFilter);
			matcherDelegate[3, 1] = "Name";
			matcherDelegate[3, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.SamAccountNameMatcher);
			matcherDelegate[4, 0] = typeof(AuthPrincEnabledFilter);
			matcherDelegate[4, 1] = "UserFlags";
			matcherDelegate[4, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[5, 0] = typeof(PermittedWorkstationFilter);
			matcherDelegate[5, 1] = "LoginWorkstations";
			matcherDelegate[5, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.MultiStringMatcher);
			matcherDelegate[6, 0] = typeof(PermittedLogonTimesFilter);
			matcherDelegate[6, 1] = "LoginHours";
			matcherDelegate[6, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.BinaryMatcher);
			matcherDelegate[7, 0] = typeof(ExpirationDateFilter);
			matcherDelegate[7, 1] = "AccountExpirationDate";
			matcherDelegate[7, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.ExpirationDateMatcher);
			matcherDelegate[8, 0] = typeof(SmartcardLogonRequiredFilter);
			matcherDelegate[8, 1] = "UserFlags";
			matcherDelegate[8, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[9, 0] = typeof(DelegationPermittedFilter);
			matcherDelegate[9, 1] = "UserFlags";
			matcherDelegate[9, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[10, 0] = typeof(HomeDirectoryFilter);
			matcherDelegate[10, 1] = "HomeDirectory";
			matcherDelegate[10, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
			matcherDelegate[11, 0] = typeof(HomeDriveFilter);
			matcherDelegate[11, 1] = "HomeDirDrive";
			matcherDelegate[11, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
			matcherDelegate[12, 0] = typeof(ScriptPathFilter);
			matcherDelegate[12, 1] = "LoginScript";
			matcherDelegate[12, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
			matcherDelegate[13, 0] = typeof(PasswordNotRequiredFilter);
			matcherDelegate[13, 1] = "UserFlags";
			matcherDelegate[13, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[14, 0] = typeof(PasswordNeverExpiresFilter);
			matcherDelegate[14, 1] = "UserFlags";
			matcherDelegate[14, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[15, 0] = typeof(CannotChangePasswordFilter);
			matcherDelegate[15, 1] = "UserFlags";
			matcherDelegate[15, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[16, 0] = typeof(AllowReversiblePasswordEncryptionFilter);
			matcherDelegate[16, 1] = "UserFlags";
			matcherDelegate[16, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
			matcherDelegate[17, 0] = typeof(GroupScopeFilter);
			matcherDelegate[17, 1] = "groupType";
			matcherDelegate[17, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.GroupTypeMatcher);
			matcherDelegate[18, 0] = typeof(ExpiredAccountFilter);
			matcherDelegate[18, 1] = "AccountExpirationDate";
			matcherDelegate[18, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
			matcherDelegate[19, 0] = typeof(LastLogonTimeFilter);
			matcherDelegate[19, 1] = "LastLogin";
			matcherDelegate[19, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
			matcherDelegate[20, 0] = typeof(PasswordSetTimeFilter);
			matcherDelegate[20, 1] = "PasswordAge";
			matcherDelegate[20, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
			matcherDelegate[21, 0] = typeof(BadLogonCountFilter);
			matcherDelegate[21, 1] = "BadPasswordAttempts";
			matcherDelegate[21, 2] = new QbeMatcher.MatcherDelegate(QbeMatcher.IntMatcher);
			QbeMatcher.filterPropertiesTableRaw = matcherDelegate;
			QbeMatcher.filterPropertiesTable = null;
			QbeMatcher.filterPropertiesTable = new Hashtable();
			for (int i = 0; i < QbeMatcher.filterPropertiesTableRaw.GetLength(0); i++)
			{
				Type type = QbeMatcher.filterPropertiesTableRaw[i, 0] as Type;
				string str = QbeMatcher.filterPropertiesTableRaw[i, 1] as string;
				QbeMatcher.MatcherDelegate matcherDelegate1 = QbeMatcher.filterPropertiesTableRaw[i, 2] as QbeMatcher.MatcherDelegate;
				QbeMatcher.FilterPropertyTableEntry filterPropertyTableEntry = new QbeMatcher.FilterPropertyTableEntry();
				filterPropertyTableEntry.winNTPropertyName = str;
				filterPropertyTableEntry.matcher = matcherDelegate1;
				QbeMatcher.filterPropertiesTable[type] = filterPropertyTableEntry;
			}
		}
Ejemplo n.º 3
0
 static QbeMatcher()
 {
     object[,] matcherDelegate           = new object[22, 3];
     matcherDelegate[0, 0]               = typeof(DescriptionFilter);
     matcherDelegate[0, 1]               = "Description";
     matcherDelegate[0, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
     matcherDelegate[1, 0]               = typeof(DisplayNameFilter);
     matcherDelegate[1, 1]               = "FullName";
     matcherDelegate[1, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
     matcherDelegate[2, 0]               = typeof(SidFilter);
     matcherDelegate[2, 1]               = "objectSid";
     matcherDelegate[2, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.SidMatcher);
     matcherDelegate[3, 0]               = typeof(SamAccountNameFilter);
     matcherDelegate[3, 1]               = "Name";
     matcherDelegate[3, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.SamAccountNameMatcher);
     matcherDelegate[4, 0]               = typeof(AuthPrincEnabledFilter);
     matcherDelegate[4, 1]               = "UserFlags";
     matcherDelegate[4, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[5, 0]               = typeof(PermittedWorkstationFilter);
     matcherDelegate[5, 1]               = "LoginWorkstations";
     matcherDelegate[5, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.MultiStringMatcher);
     matcherDelegate[6, 0]               = typeof(PermittedLogonTimesFilter);
     matcherDelegate[6, 1]               = "LoginHours";
     matcherDelegate[6, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.BinaryMatcher);
     matcherDelegate[7, 0]               = typeof(ExpirationDateFilter);
     matcherDelegate[7, 1]               = "AccountExpirationDate";
     matcherDelegate[7, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.ExpirationDateMatcher);
     matcherDelegate[8, 0]               = typeof(SmartcardLogonRequiredFilter);
     matcherDelegate[8, 1]               = "UserFlags";
     matcherDelegate[8, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[9, 0]               = typeof(DelegationPermittedFilter);
     matcherDelegate[9, 1]               = "UserFlags";
     matcherDelegate[9, 2]               = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[10, 0]              = typeof(HomeDirectoryFilter);
     matcherDelegate[10, 1]              = "HomeDirectory";
     matcherDelegate[10, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
     matcherDelegate[11, 0]              = typeof(HomeDriveFilter);
     matcherDelegate[11, 1]              = "HomeDirDrive";
     matcherDelegate[11, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
     matcherDelegate[12, 0]              = typeof(ScriptPathFilter);
     matcherDelegate[12, 1]              = "LoginScript";
     matcherDelegate[12, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.StringMatcher);
     matcherDelegate[13, 0]              = typeof(PasswordNotRequiredFilter);
     matcherDelegate[13, 1]              = "UserFlags";
     matcherDelegate[13, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[14, 0]              = typeof(PasswordNeverExpiresFilter);
     matcherDelegate[14, 1]              = "UserFlags";
     matcherDelegate[14, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[15, 0]              = typeof(CannotChangePasswordFilter);
     matcherDelegate[15, 1]              = "UserFlags";
     matcherDelegate[15, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[16, 0]              = typeof(AllowReversiblePasswordEncryptionFilter);
     matcherDelegate[16, 1]              = "UserFlags";
     matcherDelegate[16, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.UserFlagsMatcher);
     matcherDelegate[17, 0]              = typeof(GroupScopeFilter);
     matcherDelegate[17, 1]              = "groupType";
     matcherDelegate[17, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.GroupTypeMatcher);
     matcherDelegate[18, 0]              = typeof(ExpiredAccountFilter);
     matcherDelegate[18, 1]              = "AccountExpirationDate";
     matcherDelegate[18, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
     matcherDelegate[19, 0]              = typeof(LastLogonTimeFilter);
     matcherDelegate[19, 1]              = "LastLogin";
     matcherDelegate[19, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
     matcherDelegate[20, 0]              = typeof(PasswordSetTimeFilter);
     matcherDelegate[20, 1]              = "PasswordAge";
     matcherDelegate[20, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.DateTimeMatcher);
     matcherDelegate[21, 0]              = typeof(BadLogonCountFilter);
     matcherDelegate[21, 1]              = "BadPasswordAttempts";
     matcherDelegate[21, 2]              = new QbeMatcher.MatcherDelegate(QbeMatcher.IntMatcher);
     QbeMatcher.filterPropertiesTableRaw = matcherDelegate;
     QbeMatcher.filterPropertiesTable    = null;
     QbeMatcher.filterPropertiesTable    = new Hashtable();
     for (int i = 0; i < QbeMatcher.filterPropertiesTableRaw.GetLength(0); i++)
     {
         Type   type = QbeMatcher.filterPropertiesTableRaw[i, 0] as Type;
         string str  = QbeMatcher.filterPropertiesTableRaw[i, 1] as string;
         QbeMatcher.MatcherDelegate          matcherDelegate1         = QbeMatcher.filterPropertiesTableRaw[i, 2] as QbeMatcher.MatcherDelegate;
         QbeMatcher.FilterPropertyTableEntry filterPropertyTableEntry = new QbeMatcher.FilterPropertyTableEntry();
         filterPropertyTableEntry.winNTPropertyName = str;
         filterPropertyTableEntry.matcher           = matcherDelegate1;
         QbeMatcher.filterPropertiesTable[type]     = filterPropertyTableEntry;
     }
 }