[System.Security.SecuritySafeCritical]  // auto-generated
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            if (pset == null)
            {
                throw new ArgumentNullException(nameof(pset));
            }

#pragma warning disable 618
            if (!Enum.IsDefined(typeof(SecurityAction), action) ||
                action == SecurityAction.RequestMinimum ||
                action == SecurityAction.RequestOptional ||
                action == SecurityAction.RequestRefuse)
            {
                throw new ArgumentOutOfRangeException(nameof(action));
            }
#pragma warning restore 618
            Contract.EndContractBlock();

            // Cannot add declarative security after type is created.
            if (m_methodBuilder.IsTypeCreated())
            {
                throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_TypeHasBeenCreated"));
            }

            // Translate permission set into serialized format (use standard binary serialization).
            byte[] blob = pset.EncodeXml();

            // Write the blob into the metadata.
            TypeBuilder.AddDeclarativeSecurity(GetModuleBuilder().GetNativeHandle(), GetToken().Token, action, blob, blob.Length);
        }
        // Add declarative security to the method.
        //
        /// <include file='doc\MethodBuilder.uex' path='docs/doc[@for="MethodBuilder.AddDeclarativeSecurity"]/*' />
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            if ((action < SecurityAction.Demand) || (action > SecurityAction.InheritanceDemand))
            {
                throw new ArgumentOutOfRangeException("action");
            }

            if (pset == null)
            {
                throw new ArgumentNullException("pset");
            }

            // cannot declarative security after type is created
            m_containingType.ThrowIfCreated();

            // Translate permission set into serialized format (uses standard binary serialization format).
            byte[] blob = null;
            if (!pset.IsEmpty())
            {
                blob = pset.EncodeXml();
            }

            // Write the blob into the metadata.
            TypeBuilder.InternalAddDeclarativeSecurity(m_module, m_mdMethod.Token, action, blob);
        }
Esempio n. 3
0
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            ThrowIfGeneric();

            if (pset == null)
            {
                throw new ArgumentNullException("pset");
            }

            if (!Enum.IsDefined(typeof(SecurityAction), action) ||
                action == SecurityAction.RequestMinimum ||
                action == SecurityAction.RequestOptional ||
                action == SecurityAction.RequestRefuse)
            {
                throw new ArgumentOutOfRangeException("action");
            }

            // cannot declarative security after type is created
            m_containingType.ThrowIfCreated();

            // Translate permission set into serialized format (uses standard binary serialization format).
            byte[] blob = null;
            if (!pset.IsEmpty())
            {
                blob = pset.EncodeXml();
            }

            // Write the blob into the metadata.
            TypeBuilder.InternalAddDeclarativeSecurity(m_module, MetadataTokenInternal, action, blob);
        }
Esempio n. 4
0
 public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
 {
     if (pset == null)
     {
         throw new ArgumentNullException("pset");
     }
     if ((!Enum.IsDefined(typeof(SecurityAction), action) || (action == SecurityAction.RequestMinimum)) || ((action == SecurityAction.RequestOptional) || (action == SecurityAction.RequestRefuse)))
     {
         throw new ArgumentOutOfRangeException("action");
     }
     if (this.m_methodBuilder.IsTypeCreated())
     {
         throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_TypeHasBeenCreated"));
     }
     byte[] blob = pset.EncodeXml();
     TypeBuilder.AddDeclarativeSecurity(this.GetModuleBuilder().GetNativeHandle(), this.GetToken().Token, action, blob, blob.Length);
 }
Esempio n. 5
0
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            if (pset == null)
            {
                throw new ArgumentNullException("pset");
            }
            this.ThrowIfGeneric();
            if ((!Enum.IsDefined(typeof(SecurityAction), action) || (action == SecurityAction.RequestMinimum)) || ((action == SecurityAction.RequestOptional) || (action == SecurityAction.RequestRefuse)))
            {
                throw new ArgumentOutOfRangeException("action");
            }
            this.m_containingType.ThrowIfCreated();
            byte[] blob = null;
            int    cb   = 0;

            if (!pset.IsEmpty())
            {
                blob = pset.EncodeXml();
                cb   = blob.Length;
            }
            TypeBuilder.AddDeclarativeSecurity(this.m_module.GetNativeHandle(), this.MetadataTokenInternal, action, blob, cb);
        }
        // Add declarative security to the constructor.
        //
        /// <include file='doc\ConstructorBuilder.uex' path='docs/doc[@for="ConstructorBuilder.AddDeclarativeSecurity"]/*' />
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            if ((action < SecurityAction.Demand) || (action > SecurityAction.InheritanceDemand))
            {
                throw new ArgumentOutOfRangeException("action");
            }

            if (pset == null)
            {
                throw new ArgumentNullException("pset");
            }

            // Cannot add declarative security after type is created.
            if (m_methodBuilder.IsTypeCreated())
            {
                throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_TypeHasBeenCreated"));
            }

            // Translate permission set into serialized format (use standard binary serialization).
            byte[] blob = pset.EncodeXml();

            // Write the blob into the metadata.
            TypeBuilder.InternalAddDeclarativeSecurity(GetModule(), GetToken().Token, action, blob);
        }
Esempio n. 7
0
        public void AddDeclarativeSecurity(SecurityAction action, PermissionSet pset)
        {
            if (pset == null)
            {
                throw new ArgumentNullException("pset");
            }
            if (!Enum.IsDefined(typeof(SecurityAction), (object)action) || action == SecurityAction.RequestMinimum || (action == SecurityAction.RequestOptional || action == SecurityAction.RequestRefuse))
            {
                throw new ArgumentOutOfRangeException("action");
            }
            if (this.m_methodBuilder.IsTypeCreated())
            {
                throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_TypeHasBeenCreated"));
            }
            byte[]        numArray     = pset.EncodeXml();
            RuntimeModule nativeHandle = this.GetModuleBuilder().GetNativeHandle();
            int           token        = this.GetToken().Token;
            int           num          = (int)action;

            byte[] blob   = numArray;
            int    length = blob.Length;

            TypeBuilder.AddDeclarativeSecurity(nativeHandle, token, (SecurityAction)num, blob, length);
        }