<Type Name="SecurityAction" FullName="System.Security.Permissions.SecurityAction" FullNameSP="System_Security_Permissions_SecurityAction" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public sealed serializable SecurityAction extends System.Enum" />
  <TypeSignature Language="C#" Value="public enum SecurityAction" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Enum</BaseTypeName>
  </Base>
  <Docs>
    <summary>
      <para> Specifies security actions that can be performed using declarative security.</para>
    </summary>
    <remarks>
      <para>
        <block subset="none" type="note">For information about using declarative security
      and security actions, see Partition II of the CLI Specification.</block>
      </para>
      <block subset="none" type="note">
        <para>Declarative security is specified using types derived
         from <see cref="T:System.Security.Permissions.SecurityAttribute" />. The following table describes the attribute targets supported by each of the
         security actions.</para>
        <list type="table">
          <listheader>
            <term>Security action</term>
            <description>Attribute Targets</description>
          </listheader>
          <item>
            <term> Assert</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> Demand</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> Deny</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> InheritanceDemand</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> LinkDemand</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> PermitOnly</term>
            <description>Class, Method</description>
          </item>
          <item>
            <term> RequestMinimum</term>
            <description>Assembly</description>
          </item>
          <item>
            <term> RequestOptional</term>
            <description>Assembly</description>
          </item>
          <item>
            <term> RequestRefuse</term>
            <description>Assembly</description>
          </item>
        </list>
        <para> For additional information on attribute targets, see <see cref="T:System.Attribute" />.</para>
      </block>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Assert">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction Assert = 3" />
      <MemberSignature Language="C#" Value="Assert" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Assert</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that callers of the code performing the assert
 need not have the permissions specified by the current security attribute, and
 that a check for any such permission can stop after the code that asserted it.
 <block subset="none" type="note">An assert can change the default behavior of a security check (such as
 that caused by a Demand, LinkDemand, etc.).</block></para>
          <para>This action can be applied to classes and methods.</para>
          <para>
            <block subset="none" type="note">This action should only be used by code that can
 assure that its callers cannot manipulate it to abuse the asserted
 permission.</block>
          </para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Demand">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction Demand = 2" />
      <MemberSignature Language="C#" Value="Demand" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Demand</MemberValue>
      <Docs>
        <summary>
          <para> Specified that all callers are required
      to have the permissions specified by the current security attribute.</para>
          <para>This action can be applied to classes and methods.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Deny">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction Deny = 4" />
      <MemberSignature Language="C#" Value="Deny" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Deny</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that access to the resource or
 operation described by the current security attribute be denied to callers, even if they
 have been granted permission to access it. <block subset="none" type="note"><see cref="F:System.Security.Permissions.SecurityAction.Deny" />
 causes a security check
 for the permissions specified by the current security attribute to fail even when
 it would otherwise succeed.</block></para>
          <para>This action can be applied to classes and methods.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="InheritanceDemand">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction InheritanceDemand = 7" />
      <MemberSignature Language="C#" Value="InheritanceDemand" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>InheritanceDemand</MemberValue>
      <Docs>
        <summary>
          <para> 
      Specifies the permissions that a derived class is required to have. When the
      target is a class, classes inheriting from the target are required to have the
      permissions specified by the current security attribute. When the target is
      a method, classes overriding the target are required to have the
      permissions specified by the current security attribute.</para>
          <para>This action can be applied to classes and methods. </para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="LinkDemand">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction LinkDemand = 6" />
      <MemberSignature Language="C#" Value="LinkDemand" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>LinkDemand</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that the immediate caller be required
 to have the specified permissions.</para>
          <para>This action can be applied to classes and methods.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="PermitOnly">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction PermitOnly = 5" />
      <MemberSignature Language="C#" Value="PermitOnly" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>PermitOnly</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that access is limited to only those resources 
      or operations specified by the current security attribute, even if the code has been
      granted permission to access others. A security check for a permission not
      described by the current security attribute fails regardless of whether or not
      callers have been granted this permission. </para>
          <para>This action can be applied to classes and methods.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="RequestMinimum">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction RequestMinimum = 8" />
      <MemberSignature Language="C#" Value="RequestMinimum" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>RequestMinimum</MemberValue>
      <Docs>
        <summary>
          <para>Specifies that the current security attribute describes the minimum permissions required for an assembly
      to run.</para>
          <para>This action can be applied to assemblies.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="RequestOptional">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction RequestOptional = 9" />
      <MemberSignature Language="C#" Value="RequestOptional" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>RequestOptional</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that the current security attribute
      describes
      optional permissions that an assembly can be granted.</para>
          <para>This action can be applied to assemblies.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="RequestRefuse">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Security.Permissions.SecurityAction RequestRefuse = 10" />
      <MemberSignature Language="C#" Value="RequestRefuse" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Security.Permissions.SecurityAction</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>RequestRefuse</MemberValue>
      <Docs>
        <summary>
          <para> Specifies that the current security attribute
      describes resources or operations that an assembly cannot access.</para>
          <para>This action can be applied to assemblies.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
</Type>
