private static KeyContainerPermissionFlags GetApplicableFlags(KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target)
        {
            KeyContainerPermissionFlags containerPermissionFlags = KeyContainerPermissionFlags.NoFlags;
            bool flag  = true;
            int  index = target.AccessEntries.IndexOf(accessEntry);

            if (index != -1)
            {
                return(target.AccessEntries[index].Flags);
            }
            foreach (KeyContainerPermissionAccessEntry accessEntry1 in target.AccessEntries)
            {
                if (accessEntry.IsSubsetOf(accessEntry1))
                {
                    if (!flag)
                    {
                        containerPermissionFlags &= accessEntry1.Flags;
                    }
                    else
                    {
                        containerPermissionFlags = accessEntry1.Flags;
                        flag = false;
                    }
                }
            }
            if (flag)
            {
                containerPermissionFlags = target.Flags;
            }
            return(containerPermissionFlags);
        }
        private static KeyContainerPermissionFlags GetApplicableFlags (KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target) {
            KeyContainerPermissionFlags flags = KeyContainerPermissionFlags.NoFlags;
            bool applyDefaultFlags = true;

            // If the entry exists in the target, return the flag of the target entry.
            int index = target.AccessEntries.IndexOf(accessEntry);
            if (index != -1) {
                flags = ((KeyContainerPermissionAccessEntry)target.AccessEntries[index]).Flags;
                return flags;
            }

            // Intersect the flags in all the target entries that apply to the current access entry, 
            foreach (KeyContainerPermissionAccessEntry targetAccessEntry in target.AccessEntries) {
                if (accessEntry.IsSubsetOf(targetAccessEntry)) {
                    if (applyDefaultFlags == false) {
                        flags &= targetAccessEntry.Flags;
                    } else {
                        flags = targetAccessEntry.Flags;
                        applyDefaultFlags = false;
                    }
                }
            }

            // If no target entry applies to the current entry, the default global flag applies.
            if (applyDefaultFlags)
                flags = target.Flags;

            return flags;
        }
Exemple #3
0
        private static KeyContainerPermissionFlags GetApplicableFlags(KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target)
        {
            KeyContainerPermissionFlags noFlags = KeyContainerPermissionFlags.NoFlags;
            bool flag  = true;
            int  index = target.AccessEntries.IndexOf(accessEntry);

            if (index != -1)
            {
                return(target.AccessEntries[index].Flags);
            }
            KeyContainerPermissionAccessEntryEnumerator enumerator = target.AccessEntries.GetEnumerator();

            while (enumerator.MoveNext())
            {
                KeyContainerPermissionAccessEntry current = enumerator.Current;
                if (accessEntry.IsSubsetOf(current))
                {
                    if (!flag)
                    {
                        noFlags &= current.Flags;
                    }
                    else
                    {
                        noFlags = current.Flags;
                        flag    = false;
                    }
                }
            }
            if (flag)
            {
                noFlags = target.Flags;
            }
            return(noFlags);
        }
        // Token: 0x060026D0 RID: 9936 RVA: 0x0008CC40 File Offset: 0x0008AE40
        private static KeyContainerPermissionFlags GetApplicableFlags(KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target)
        {
            KeyContainerPermissionFlags keyContainerPermissionFlags = KeyContainerPermissionFlags.NoFlags;
            bool flag = true;
            int  num  = target.AccessEntries.IndexOf(accessEntry);

            if (num != -1)
            {
                return(target.AccessEntries[num].Flags);
            }
            foreach (KeyContainerPermissionAccessEntry keyContainerPermissionAccessEntry in target.AccessEntries)
            {
                if (accessEntry.IsSubsetOf(keyContainerPermissionAccessEntry))
                {
                    if (!flag)
                    {
                        keyContainerPermissionFlags &= keyContainerPermissionAccessEntry.Flags;
                    }
                    else
                    {
                        keyContainerPermissionFlags = keyContainerPermissionAccessEntry.Flags;
                        flag = false;
                    }
                }
            }
            if (flag)
            {
                keyContainerPermissionFlags = target.Flags;
            }
            return(keyContainerPermissionFlags);
        }
        private static KeyContainerPermissionFlags GetApplicableFlags (KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target) {
            KeyContainerPermissionFlags flags = KeyContainerPermissionFlags.NoFlags;
            bool applyDefaultFlags = true;

            // If the entry exists in the target, return the flag of the target entry.
            int index = target.AccessEntries.IndexOf(accessEntry);
            if (index != -1) {
                flags = ((KeyContainerPermissionAccessEntry)target.AccessEntries[index]).Flags;
                return flags;
            }

            // Intersect the flags in all the target entries that apply to the current access entry, 
            foreach (KeyContainerPermissionAccessEntry targetAccessEntry in target.AccessEntries) {
                if (accessEntry.IsSubsetOf(targetAccessEntry)) {
                    if (applyDefaultFlags == false) {
                        flags &= targetAccessEntry.Flags;
                    } else {
                        flags = targetAccessEntry.Flags;
                        applyDefaultFlags = false;
                    }
                }
            }

            // If no target entry applies to the current entry, the default global flag applies.
            if (applyDefaultFlags)
                flags = target.Flags;

            return flags;
        }
 private static KeyContainerPermissionFlags GetApplicableFlags(KeyContainerPermissionAccessEntry accessEntry, KeyContainerPermission target)
 {
     KeyContainerPermissionFlags noFlags = KeyContainerPermissionFlags.NoFlags;
     bool flag = true;
     int index = target.AccessEntries.IndexOf(accessEntry);
     if (index != -1)
     {
         return target.AccessEntries[index].Flags;
     }
     KeyContainerPermissionAccessEntryEnumerator enumerator = target.AccessEntries.GetEnumerator();
     while (enumerator.MoveNext())
     {
         KeyContainerPermissionAccessEntry current = enumerator.Current;
         if (accessEntry.IsSubsetOf(current))
         {
             if (!flag)
             {
                 noFlags &= current.Flags;
             }
             else
             {
                 noFlags = current.Flags;
                 flag = false;
             }
         }
     }
     if (flag)
     {
         noFlags = target.Flags;
     }
     return noFlags;
 }