CheckSetDemand() private méthode

private CheckSetDemand ( PermissionSet demandSet, PermissionSet &alteredDemandset, RuntimeMethodHandle rmh ) : bool
demandSet PermissionSet
alteredDemandset PermissionSet
rmh RuntimeMethodHandle
Résultat bool
Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }