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; }
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); }
internal static extern void SetQuickCache(ConfigId id, QuickCacheEntryType quickCacheFlags);
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; }
internal static extern void SetQuickCache( ConfigId id, QuickCacheEntryType cache );
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; }
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); }