Example #1
0
        private static QuickCacheEntryType GenerateQuickCache(PolicyLevel level)
        {
            if (FullTrustMap == null)
            {
                // This mapping must stay in sync with the SecurityZone enumeration in SecurityZone.cs
                FullTrustMap = new QuickCacheEntryType[]
                {
                    QuickCacheEntryType.FullTrustZoneMyComputer,
                  QuickCacheEntryType.FullTrustZoneIntranet,
                    QuickCacheEntryType.FullTrustZoneTrusted,
                  QuickCacheEntryType.FullTrustZoneInternet,
                    QuickCacheEntryType.FullTrustZoneUntrusted
                };
            }

            QuickCacheEntryType accumulator = (QuickCacheEntryType)0;

            Evidence noEvidence = new Evidence();

            PermissionSet policy = null;

            try
            {
                policy = level.Resolve( noEvidence ).PermissionSet;
                if (policy.IsUnrestricted())
                    accumulator |= QuickCacheEntryType.FullTrustAll;
            }
            catch (PolicyException)
            {
            }

            foreach (SecurityZone zone in Enum.GetValues(typeof(SecurityZone)))
            {
                if (zone == SecurityZone.NoZone)
                    continue;

                Evidence zoneEvidence = new Evidence();
                zoneEvidence.AddHostEvidence(new Zone(zone));

                PermissionSet zonePolicy = null;

                try
                {
                    zonePolicy = level.Resolve( zoneEvidence ).PermissionSet;
                    if (zonePolicy.IsUnrestricted())
                    {
                        Contract.Assert(0 <= (int)zone && (int)zone < FullTrustMap.Length, "FullTrustMap does not contain a mapping for this zone.");
                        accumulator |= FullTrustMap[(int)zone];
                    }
                }
                catch (PolicyException)
                {
                }
            }

            return accumulator;
        }
Example #2
0
        private static QuickCacheEntryType GenerateQuickCache(PolicyLevel level)
        {
            QuickCacheEntryType[] FullTrustMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.FullTrustZoneMyComputer,
              QuickCacheEntryType.FullTrustZoneIntranet,
              QuickCacheEntryType.FullTrustZoneInternet,
              QuickCacheEntryType.FullTrustZoneTrusted,
              QuickCacheEntryType.FullTrustZoneUntrusted };

            QuickCacheEntryType accumulator = (QuickCacheEntryType)0;

            Evidence noEvidence = new Evidence();

            PermissionSet policy = null;

            try
            {
                policy = level.Resolve(noEvidence).PermissionSet;
                if (policy.IsUnrestricted())
                {
                    accumulator |= QuickCacheEntryType.FullTrustAll;
                }
            }
            catch (PolicyException)
            {
            }

            Array zones = Enum.GetValues(typeof(SecurityZone));

            for (int i = 0; i < zones.Length; ++i)
            {
                if (((SecurityZone)zones.GetValue(i)) == SecurityZone.NoZone)
                {
                    continue;
                }

                Evidence zoneEvidence = new Evidence();
                zoneEvidence.AddHost(new Zone((SecurityZone)zones.GetValue(i)));

                PermissionSet zonePolicy = null;

                try
                {
                    zonePolicy = level.Resolve(zoneEvidence).PermissionSet;
                    if (zonePolicy.IsUnrestricted())
                    {
                        accumulator |= FullTrustMap[i];
                    }
                }
                catch (PolicyException)
                {
                }
            }

            return(accumulator);
        }
        // Token: 0x06001D78 RID: 7544 RVA: 0x00066B14 File Offset: 0x00064D14
        private static QuickCacheEntryType GenerateQuickCache(PolicyLevel level)
        {
            if (PolicyManager.FullTrustMap == null)
            {
                PolicyManager.FullTrustMap = new QuickCacheEntryType[]
                {
                    QuickCacheEntryType.FullTrustZoneMyComputer,
                    QuickCacheEntryType.FullTrustZoneIntranet,
                    QuickCacheEntryType.FullTrustZoneTrusted,
                    QuickCacheEntryType.FullTrustZoneInternet,
                    QuickCacheEntryType.FullTrustZoneUntrusted
                };
            }
            QuickCacheEntryType quickCacheEntryType = (QuickCacheEntryType)0;
            Evidence            evidence            = new Evidence();

            try
            {
                PermissionSet permissionSet = level.Resolve(evidence).PermissionSet;
                if (permissionSet.IsUnrestricted())
                {
                    quickCacheEntryType |= QuickCacheEntryType.FullTrustAll;
                }
            }
            catch (PolicyException)
            {
            }
            foreach (object obj in Enum.GetValues(typeof(SecurityZone)))
            {
                SecurityZone securityZone = (SecurityZone)obj;
                if (securityZone != SecurityZone.NoZone)
                {
                    Evidence evidence2 = new Evidence();
                    evidence2.AddHostEvidence <Zone>(new Zone(securityZone));
                    try
                    {
                        PermissionSet permissionSet2 = level.Resolve(evidence2).PermissionSet;
                        if (permissionSet2.IsUnrestricted())
                        {
                            quickCacheEntryType |= PolicyManager.FullTrustMap[(int)securityZone];
                        }
                    }
                    catch (PolicyException)
                    {
                    }
                }
            }
            return(quickCacheEntryType);
        }
        private static QuickCacheEntryType GenerateQuickCache(PolicyLevel level)
        {
            if (FullTrustMap == null)
            {
                FullTrustMap = new QuickCacheEntryType[] { QuickCacheEntryType.FullTrustZoneMyComputer, QuickCacheEntryType.FullTrustZoneIntranet, QuickCacheEntryType.FullTrustZoneTrusted, QuickCacheEntryType.FullTrustZoneInternet, QuickCacheEntryType.FullTrustZoneUntrusted };
            }
            QuickCacheEntryType type     = 0;
            Evidence            evidence = new Evidence();

            try
            {
                if (level.Resolve(evidence).PermissionSet.IsUnrestricted())
                {
                    type |= QuickCacheEntryType.FullTrustAll;
                }
            }
            catch (PolicyException)
            {
            }
            foreach (SecurityZone zone in Enum.GetValues(typeof(SecurityZone)))
            {
                if (zone != SecurityZone.NoZone)
                {
                    Evidence evidence2 = new Evidence();
                    evidence2.AddHostEvidence <Zone>(new Zone(zone));
                    try
                    {
                        if (level.Resolve(evidence2).PermissionSet.IsUnrestricted())
                        {
                            type |= FullTrustMap[(int)zone];
                        }
                    }
                    catch (PolicyException)
                    {
                    }
                }
            }
            return(type);
        }
Example #5
0
 internal static extern void SetQuickCache(ConfigId id, QuickCacheEntryType quickCacheFlags);
Example #6
0
        internal static QuickCacheEntryType GenerateQuickCache( PolicyLevel level )
        {
            QuickCacheEntryType[] ExecutionMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.ExecutionZoneMyComputer,
                  QuickCacheEntryType.ExecutionZoneIntranet,
                  QuickCacheEntryType.ExecutionZoneInternet,
                  QuickCacheEntryType.ExecutionZoneTrusted,
                  QuickCacheEntryType.ExecutionZoneUntrusted };

            QuickCacheEntryType[] UnmanagedMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.UnmanagedZoneMyComputer,
                  QuickCacheEntryType.UnmanagedZoneIntranet,
                  QuickCacheEntryType.UnmanagedZoneInternet,
                  QuickCacheEntryType.UnmanagedZoneTrusted,
                  QuickCacheEntryType.UnmanagedZoneUntrusted };

            QuickCacheEntryType[] RequestSkipVerificationMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.RequestSkipVerificationZoneMyComputer,
                  QuickCacheEntryType.RequestSkipVerificationZoneIntranet,
                  QuickCacheEntryType.RequestSkipVerificationZoneInternet,
                  QuickCacheEntryType.RequestSkipVerificationZoneTrusted,
                  QuickCacheEntryType.RequestSkipVerificationZoneUntrusted };

            QuickCacheEntryType[] SkipVerificationMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.SkipVerificationZoneMyComputer,
                  QuickCacheEntryType.SkipVerificationZoneIntranet,
                  QuickCacheEntryType.SkipVerificationZoneInternet,
                  QuickCacheEntryType.SkipVerificationZoneTrusted,
                  QuickCacheEntryType.SkipVerificationZoneUntrusted };

            QuickCacheEntryType[] FullTrustMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.FullTrustZoneMyComputer,
                  QuickCacheEntryType.FullTrustZoneIntranet,
                  QuickCacheEntryType.FullTrustZoneInternet,
                  QuickCacheEntryType.FullTrustZoneTrusted,
                  QuickCacheEntryType.FullTrustZoneUntrusted };

            QuickCacheEntryType accumulator = (QuickCacheEntryType)0;

            SecurityPermission execPerm = new SecurityPermission( SecurityPermissionFlag.Execution );
            SecurityPermission unmanagedPerm = new SecurityPermission( SecurityPermissionFlag.UnmanagedCode );
            SecurityPermission skipVerifPerm = new SecurityPermission( SecurityPermissionFlag.SkipVerification );

            Evidence noEvidence = new Evidence();

            PermissionSet policy = null;
            
            try
            {
                policy = level.Resolve( noEvidence ).PermissionSet;

                if (policy.Contains( execPerm ))
                    accumulator |= QuickCacheEntryType.ExecutionAll;

                if (policy.Contains( unmanagedPerm ))
                    accumulator |= QuickCacheEntryType.UnmanagedAll;

                if (policy.Contains( skipVerifPerm ))
                    accumulator |= QuickCacheEntryType.SkipVerificationAll;

                if (policy.IsUnrestricted())
                    accumulator |= QuickCacheEntryType.FullTrustAll;
            }
            catch (PolicyException)
            {
            }

            PermissionSet permSet = new PermissionSet( PermissionState.None );
            permSet.AddPermission( skipVerifPerm );
            PermissionRequestEvidence permRequest = new PermissionRequestEvidence( permSet, null, null );

            try
            {
                noEvidence.AddHost( permRequest );

                policy = level.Resolve( noEvidence ).PermissionSet;

                if (policy.Contains( skipVerifPerm ))
                    accumulator |= QuickCacheEntryType.RequestSkipVerificationAll;
            }
            catch (PolicyException)
            {
            }

            Array zones = Enum.GetValues( typeof( SecurityZone ) );

            for (int i = 0; i < zones.Length; ++i)
            {
                if (((SecurityZone)zones.GetValue( i )) == SecurityZone.NoZone)
                    continue;

                Evidence zoneEvidence = new Evidence();
                zoneEvidence.AddHost( new Zone( (SecurityZone)zones.GetValue( i ) ) );

                PermissionSet zonePolicy = null;
                
                try
                {
                    zonePolicy = level.Resolve( zoneEvidence ).PermissionSet;

                    if (zonePolicy.Contains( execPerm ))
                        accumulator |= ExecutionMap[i];

                    if (zonePolicy.Contains( unmanagedPerm ))
                        accumulator |= UnmanagedMap[i];

                    if (zonePolicy.Contains( skipVerifPerm ))
                        accumulator |= SkipVerificationMap[i];

                    if (zonePolicy.IsUnrestricted())
                        accumulator |= FullTrustMap[i];
                }
                catch (PolicyException)
                {
                }

                zoneEvidence.AddHost( permRequest );

                try
                {
                    zonePolicy = level.Resolve( zoneEvidence ).PermissionSet;

                    if (zonePolicy.Contains( skipVerifPerm ))
                        accumulator |= RequestSkipVerificationMap[i];
                }
                catch (PolicyException)
                {
                }
            }

            return accumulator;
        }
Example #7
0
 internal static extern void SetQuickCache( ConfigId id, QuickCacheEntryType cache );
 internal static extern void SetQuickCache(ConfigId id, QuickCacheEntryType quickCacheFlags);
Example #9
0
 internal static extern void SetQuickCache(ConfigId id, QuickCacheEntryType cache);
        private static QuickCacheEntryType GenerateQuickCache (PolicyLevel level) {
            QuickCacheEntryType[] FullTrustMap = new QuickCacheEntryType[]
                { QuickCacheEntryType.FullTrustZoneMyComputer,
                  QuickCacheEntryType.FullTrustZoneIntranet,
                  QuickCacheEntryType.FullTrustZoneInternet,
                  QuickCacheEntryType.FullTrustZoneTrusted,
                  QuickCacheEntryType.FullTrustZoneUntrusted };

            QuickCacheEntryType accumulator = (QuickCacheEntryType)0;

            Evidence noEvidence = new Evidence();

            PermissionSet policy = null;

            try
            {
                policy = level.Resolve( noEvidence ).PermissionSet;
                if (policy.IsUnrestricted())
                    accumulator |= QuickCacheEntryType.FullTrustAll;
            }
            catch (PolicyException)
            {
            }

            Array zones = Enum.GetValues( typeof( SecurityZone ) );

            for (int i = 0; i < zones.Length; ++i)
            {
                if (((SecurityZone)zones.GetValue( i )) == SecurityZone.NoZone)
                    continue;

                Evidence zoneEvidence = new Evidence();
                zoneEvidence.AddHost( new Zone( (SecurityZone)zones.GetValue( i ) ) );

                PermissionSet zonePolicy = null;

                try
                {
                    zonePolicy = level.Resolve( zoneEvidence ).PermissionSet;
                    if (zonePolicy.IsUnrestricted())
                        accumulator |= FullTrustMap[i];
                }
                catch (PolicyException)
                {
                }
            }

            return accumulator;
        }
Example #11
0
        internal static QuickCacheEntryType GenerateQuickCache(PolicyLevel level)
        {
            QuickCacheEntryType[] ExecutionMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.ExecutionZoneMyComputer,
              QuickCacheEntryType.ExecutionZoneIntranet,
              QuickCacheEntryType.ExecutionZoneInternet,
              QuickCacheEntryType.ExecutionZoneTrusted,
              QuickCacheEntryType.ExecutionZoneUntrusted };

            QuickCacheEntryType[] UnmanagedMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.UnmanagedZoneMyComputer,
              QuickCacheEntryType.UnmanagedZoneIntranet,
              QuickCacheEntryType.UnmanagedZoneInternet,
              QuickCacheEntryType.UnmanagedZoneTrusted,
              QuickCacheEntryType.UnmanagedZoneUntrusted };

            QuickCacheEntryType[] RequestSkipVerificationMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.RequestSkipVerificationZoneMyComputer,
              QuickCacheEntryType.RequestSkipVerificationZoneIntranet,
              QuickCacheEntryType.RequestSkipVerificationZoneInternet,
              QuickCacheEntryType.RequestSkipVerificationZoneTrusted,
              QuickCacheEntryType.RequestSkipVerificationZoneUntrusted };

            QuickCacheEntryType[] SkipVerificationMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.SkipVerificationZoneMyComputer,
              QuickCacheEntryType.SkipVerificationZoneIntranet,
              QuickCacheEntryType.SkipVerificationZoneInternet,
              QuickCacheEntryType.SkipVerificationZoneTrusted,
              QuickCacheEntryType.SkipVerificationZoneUntrusted };

            QuickCacheEntryType[] FullTrustMap = new QuickCacheEntryType[]
            { QuickCacheEntryType.FullTrustZoneMyComputer,
              QuickCacheEntryType.FullTrustZoneIntranet,
              QuickCacheEntryType.FullTrustZoneInternet,
              QuickCacheEntryType.FullTrustZoneTrusted,
              QuickCacheEntryType.FullTrustZoneUntrusted };

            QuickCacheEntryType accumulator = (QuickCacheEntryType)0;

            SecurityPermission execPerm      = new SecurityPermission(SecurityPermissionFlag.Execution);
            SecurityPermission unmanagedPerm = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
            SecurityPermission skipVerifPerm = new SecurityPermission(SecurityPermissionFlag.SkipVerification);

            Evidence noEvidence = new Evidence();

            PermissionSet policy = null;

            try
            {
                policy = level.Resolve(noEvidence).PermissionSet;

                if (policy.Contains(execPerm))
                {
                    accumulator |= QuickCacheEntryType.ExecutionAll;
                }

                if (policy.Contains(unmanagedPerm))
                {
                    accumulator |= QuickCacheEntryType.UnmanagedAll;
                }

                if (policy.Contains(skipVerifPerm))
                {
                    accumulator |= QuickCacheEntryType.SkipVerificationAll;
                }

                if (policy.IsUnrestricted())
                {
                    accumulator |= QuickCacheEntryType.FullTrustAll;
                }
            }
            catch (PolicyException)
            {
            }

            PermissionSet permSet = new PermissionSet(PermissionState.None);

            permSet.AddPermission(skipVerifPerm);
            PermissionRequestEvidence permRequest = new PermissionRequestEvidence(permSet, null, null);

            try
            {
                noEvidence.AddHost(permRequest);

                policy = level.Resolve(noEvidence).PermissionSet;

                if (policy.Contains(skipVerifPerm))
                {
                    accumulator |= QuickCacheEntryType.RequestSkipVerificationAll;
                }
            }
            catch (PolicyException)
            {
            }

            Array zones = Enum.GetValues(typeof(SecurityZone));

            for (int i = 0; i < zones.Length; ++i)
            {
                if (((SecurityZone)zones.GetValue(i)) == SecurityZone.NoZone)
                {
                    continue;
                }

                Evidence zoneEvidence = new Evidence();
                zoneEvidence.AddHost(new Zone((SecurityZone)zones.GetValue(i)));

                PermissionSet zonePolicy = null;

                try
                {
                    zonePolicy = level.Resolve(zoneEvidence).PermissionSet;

                    if (zonePolicy.Contains(execPerm))
                    {
                        accumulator |= ExecutionMap[i];
                    }

                    if (zonePolicy.Contains(unmanagedPerm))
                    {
                        accumulator |= UnmanagedMap[i];
                    }

                    if (zonePolicy.Contains(skipVerifPerm))
                    {
                        accumulator |= SkipVerificationMap[i];
                    }

                    if (zonePolicy.IsUnrestricted())
                    {
                        accumulator |= FullTrustMap[i];
                    }
                }
                catch (PolicyException)
                {
                }

                zoneEvidence.AddHost(permRequest);

                try
                {
                    zonePolicy = level.Resolve(zoneEvidence).PermissionSet;

                    if (zonePolicy.Contains(skipVerifPerm))
                    {
                        accumulator |= RequestSkipVerificationMap[i];
                    }
                }
                catch (PolicyException)
                {
                }
            }

            return(accumulator);
        }