System.Security.SecurityRuntime.PermitOnly C# (CSharp) Method

PermitOnly() static private method

static private PermitOnly ( PermissionSet permSet, System.Threading.StackCrawlMark &stackMark ) : void
permSet PermissionSet
stackMark System.Threading.StackCrawlMark
return void
        internal static void PermitOnly(PermissionSet permSet, ref StackCrawlMark stackMark)
        {
            FrameSecurityDescriptor secObj =
                SecurityRuntime.GetSecurityObjectForFrame(ref stackMark, true);
    
            BCLDebug.Assert(secObj != null || !SecurityManager._IsSecurityOn(),"Failure in SecurityRuntime.PermitOnly() - secObj != null");
            if (secObj == null)
            {
                if (SecurityManager._IsSecurityOn())
                // Security: REQ_SQ flag is missing. Bad compiler ?
                throw new ExecutionEngineException( Environment.GetResourceString( "ExecutionEngine_MissingSecurityDescriptor" ) );
            }
            else
            {
                if (secObj.HasImperativeRestrictions())
                    throw new SecurityException( Environment.GetResourceString( "Security_MustRevertOverride" ) );

                secObj.SetPermitOnly(permSet);
            }
        }