Пример #1
0
        private unsafe static bool InheritanceDemand(AppDomain ad, Assembly a, RuntimeDeclSecurityActions *actions)
        {
            bool result;

            try
            {
                bool flag = true;
                if (actions->cas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(actions->cas.blob, actions->cas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                    if (flag)
                    {
                        flag = (SecurityManager.CheckPermissionSet(ad, ps) == null);
                    }
                }
                if (actions->noncas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(actions->noncas.blob, actions->noncas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                    if (flag)
                    {
                        flag = (SecurityManager.CheckPermissionSet(ad, ps) == null);
                    }
                }
                result = flag;
            }
            catch (SecurityException)
            {
                result = false;
            }
            return(result);
        }
Пример #2
0
        // internal - get called by the class loader

        // Called when
        // - class inheritance
        // - method overrides
        private unsafe static bool InheritanceDemand(AppDomain ad, Assembly a, RuntimeDeclSecurityActions *actions)
        {
            try
            {
                PermissionSet ps     = null;
                bool          result = true;
                if (actions->cas.size > 0)
                {
                    ps     = Decode(actions->cas.blob, actions->cas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                    if (result)
                    {
                        // also check appdomain
                        result = (SecurityManager.CheckPermissionSet(ad, ps) == null);
                    }
                }
                if (actions->noncas.size > 0)
                {
                    ps     = Decode(actions->noncas.blob, actions->noncas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                    if (result)
                    {
                        // also check appdomain
                        result = (SecurityManager.CheckPermissionSet(ad, ps) == null);
                    }
                }
                return(result);
            }
            catch (SecurityException)
            {
                return(false);
            }
        }
Пример #3
0
        private unsafe static bool LinkDemand(Assembly a, RuntimeDeclSecurityActions *klass, RuntimeDeclSecurityActions *method)
        {
            bool result;

            try
            {
                bool flag = true;
                if (klass->cas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(klass->cas.blob, klass->cas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                }
                if (flag && klass->noncas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(klass->noncas.blob, klass->noncas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                }
                if (flag && method->cas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(method->cas.blob, method->cas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                }
                if (flag && method->noncas.size > 0)
                {
                    PermissionSet ps = SecurityManager.Decode(method->noncas.blob, method->noncas.size);
                    flag = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                }
                result = flag;
            }
            catch (SecurityException)
            {
                result = false;
            }
            return(result);
        }
Пример #4
0
        private unsafe static bool LinkDemand(Assembly a, RuntimeDeclSecurityActions *klass, RuntimeDeclSecurityActions *method)
        {
            try
            {
                PermissionSet ps     = null;
                bool          result = true;
                if (klass->cas.size > 0)
                {
                    ps     = Decode(klass->cas.blob, klass->cas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                }
                if (result && (klass->noncas.size > 0))
                {
                    ps     = Decode(klass->noncas.blob, klass->noncas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                }

                if (result && (method->cas.size > 0))
                {
                    ps     = Decode(method->cas.blob, method->cas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, false) == null);
                }
                if (result && (method->noncas.size > 0))
                {
                    ps     = Decode(method->noncas.blob, method->noncas.size);
                    result = (SecurityManager.CheckPermissionSet(a, ps, true) == null);
                }
                return(result);
            }
            catch (SecurityException)
            {
                return(false);
            }
        }
Пример #5
0
 private unsafe static extern bool GetLinkDemandSecurity(MethodBase method, RuntimeDeclSecurityActions *cdecl, RuntimeDeclSecurityActions *mdecl);
Пример #6
0
 private unsafe static bool LinkDemand(Assembly a, RuntimeDeclSecurityActions *klass, RuntimeDeclSecurityActions *method)
 {
     return(false);
 }
Пример #7
0
        // internal - get called by the class loader

        // Called when
        // - class inheritance
        // - method overrides
        private unsafe static bool InheritanceDemand(AppDomain ad, Assembly a, RuntimeDeclSecurityActions *actions)
        {
            return(false);
        }
Пример #8
0
 private static unsafe bool GetLinkDemandSecurity(MethodBase method, RuntimeDeclSecurityActions *cdecl, RuntimeDeclSecurityActions *mdecl)
 {
     throw new System.NotImplementedException();
 }