internal bool CheckSetDemand(PermissionSet pset, RuntimeMethodHandle rmh) { bool bRet = SecurityRuntime.StackContinue; PermissionSet demandSet = pset; PermissionSet alteredDemandSet; if (m_permSetTriples != null) { for (int i = 0; (i < m_permSetTriples.Count && bRet != SecurityRuntime.StackHalt); i++) { PermissionSetTriple psTriple = (PermissionSetTriple)m_permSetTriples[i]; bRet = psTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); if (alteredDemandSet != null) { demandSet = alteredDemandSet; } } } else if (m_firstPermSetTriple != null) { bRet = m_firstPermSetTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); } return(SecurityRuntime.StackHalt); // CS demand check always terminates the stackwalk }
internal bool CheckSetDemandWithModification(PermissionSet pset, out PermissionSet alteredDemandSet, RuntimeMethodHandleInternal rmh) { bool bRet = SecurityRuntime.StackContinue; PermissionSet demandSet = pset; alteredDemandSet = null; if (m_permSetTriples != null) { for (int i = 0; (i < m_permSetTriples.Count && bRet != SecurityRuntime.StackHalt); i++) { PermissionSetTriple psTriple = (PermissionSetTriple)m_permSetTriples[i]; bRet = psTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); if (alteredDemandSet != null) { demandSet = alteredDemandSet; } } } else if (m_firstPermSetTriple != null) { bRet = m_firstPermSetTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); } return(bRet); }
internal bool CheckSetDemandWithModification(PermissionSet pset, out PermissionSet alteredDemandSet, RuntimeMethodHandleInternal rmh) { bool flag = true; PermissionSet demandSet = pset; alteredDemandSet = null; if (this.m_permSetTriples != null) { int num = 0; while (num < this.m_permSetTriples.Count && flag) { PermissionSetTriple permissionSetTriple = (PermissionSetTriple)this.m_permSetTriples[num]; flag = permissionSetTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); if (alteredDemandSet != null) { demandSet = alteredDemandSet; } num++; } } else if (this.m_firstPermSetTriple != null) { flag = this.m_firstPermSetTriple.CheckSetDemand(demandSet, out alteredDemandSet, rmh); } return(flag); }