SecurityAction Énumération

Définition

Avertissement

Cette API est désormais obsolète.

Spécifie les actions de sécurité qui peuvent être effectuées à l’aide de la sécurité déclarative.Specifies the security actions that can be performed using declarative security.

public enum class SecurityAction
[System.Runtime.InteropServices.ComVisible(true)]
[System.Obsolete("CAS support is not available with Silverlight applications.")]
[System.Serializable]
public enum SecurityAction
type SecurityAction = 
Public Enum SecurityAction
Héritage
SecurityAction
Attributs

Champs

Assert 3

Le code appelant peut accéder à la ressource identifiée par l’objet d’autorisation actuel, même si les appelants figurant plus haut dans la pile ne disposent pas de l’autorisation d’accéder à la ressource (consultez Utilisation de la méthode Assert).The calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource (see Using the Assert Method).

Demand 2

Tous les appelants figurant plus haut dans la pile des appels doivent disposer de l’autorisation spécifiée par l’objet d’autorisation actuel.All callers higher in the call stack are required to have been granted the permission specified by the current permission object.

Deny 4

La possibilité d’accéder à la ressource spécifiée par l’objet d’autorisation actuel est refusée aux appelants, même s’ils disposent de l’autorisation d’y accéder (consultez Utilisation de la méthode Deny).The ability to access the resource specified by the current permission object is denied to callers, even if they have been granted permission to access it (see Using the Deny Method).

InheritanceDemand 7

La classe dérivée qui hérite de la classe ou qui substitue une méthode doit avoir reçu l'autorisation spécifiée.The derived class inheriting the class or overriding a method is required to have been granted the specified permission.

LinkDemand 6

L’appelant immédiat doit avoir reçu l’autorisation spécifiée.The immediate caller is required to have been granted the specified permission. À ne pas utiliser dans .NET Framework 4.NET Framework 4.Do not use in the .NET Framework 4.NET Framework 4. Pour un niveau de confiance totale, utilisez plutôt SecurityCriticalAttribute ; pour un niveau de confiance partielle, utilisez Demand.For full trust, use SecurityCriticalAttribute instead; for partial trust, use Demand.

PermitOnly 5

Seules les ressources spécifiées par l’objet d’autorisation sont accessibles, même si le code a reçu l’autorisation d’accéder à d’autres ressources.Only the resources specified by this permission object can be accessed, even if the code has been granted permission to access other resources.

RequestMinimum 8

Requête des autorisations minimales pour que le code s’exécute.The request for the minimum permissions required for code to run. Cette action ne peut être utilisée que dans la portée de l’assembly.This action can only be used within the scope of the assembly.

RequestOptional 9

Requête d’autorisations supplémentaires et facultatives (non requises pour l’exécution).The request for additional permissions that are optional (not required to run). Cette requête refuse implicitement toutes les autres autorisations qui ne sont pas spécifiquement demandées.This request implicitly refuses all other permissions not specifically requested. Cette action ne peut être utilisée que dans la portée de l’assembly.This action can only be used within the scope of the assembly.

RequestRefuse 10

Requête pour que les autorisations qui peuvent être utilisées abusivement ne soient pas accordées au code appelant.The request that permissions that might be misused will not be granted to the calling code. Cette action ne peut être utilisée que dans la portée de l’assembly.This action can only be used within the scope of the assembly.

Exemples

Cet exemple montre comment informer le CLR que le code des méthodes appelées a uniquement IsolatedStoragePermission, et montre également comment écrire et lire à partir du stockage isolé.This example shows how to notify the CLR that code in called methods has only IsolatedStoragePermission, and also demonstrates how to write and read from isolated storage.

using namespace System;
using namespace System::Security;
using namespace System::Security::Permissions;
using namespace System::IO::IsolatedStorage;
using namespace System::IO;


static void WriteIsolatedStorage()
{
    try
    {
        // Attempt to create a storage file that is isolated by
        // user and assembly. IsolatedStorageFilePermission
        // granted to the attribute at the top of this file
        // allows CLR to load this assembly and execution of this
        // statement.
        Stream^ fileCreateStream = gcnew
            IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Create,
            IsolatedStorageFile::GetUserStoreForAssembly());

        StreamWriter^ streamWriter = gcnew StreamWriter(
            fileCreateStream);
        try
        {
            // Write some data out to the isolated file.

            streamWriter->Write("This is some test data.");
            streamWriter->Close();	
        }
        finally
        {
            delete fileCreateStream;
            delete streamWriter;
        } 
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }

    try
    {
        Stream^ fileOpenStream =
            gcnew IsolatedStorageFileStream(
            "AssemblyData",
            FileMode::Open,
            IsolatedStorageFile::GetUserStoreForAssembly());
        // Attempt to open the file that was previously created.

        StreamReader^ streamReader = gcnew StreamReader(
            fileOpenStream);
        try
        { 
            // Read the data from the file and display it.

            Console::WriteLine(streamReader->ReadLine());
            streamReader->Close();
        }
        finally
        {
            delete fileOpenStream;
            delete streamReader;
        }
    }
    catch (FileNotFoundException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
// Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
// This restricts the called methods to working only with storage files that are isolated 
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction::PermitOnly, UsageAllowed = IsolatedStorageContainment::AssemblyIsolationByUser)]
int main()
{
    WriteIsolatedStorage();
}

// This code produces the following output.
//
//  This is some test data.
using System;
using System.Security.Permissions;
using System.IO.IsolatedStorage;
using System.IO;

// Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
// This restricts the called methods to working only with storage files that are isolated 
// by user and assembly.
[IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed = IsolatedStorageContainment.AssemblyIsolationByUser)]
public sealed class App
{
    static void Main()
    {
        WriteIsolatedStorage();

    }
    private static void WriteIsolatedStorage()
    {
        // Attempt to create a storage file that is isolated by user and assembly.
        // IsolatedStorageFilePermission granted to the attribute at the top of this file 
        // allows CLR to load this assembly and execution of this statement.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly()))
        {

            // Write some data out to the isolated file.
            using (StreamWriter sw = new StreamWriter(s))
            {
                sw.Write("This is some test data.");
            }
        }

        // Attempt to open the file that was previously created.
        using (Stream s = new IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly()))
        {
            // Read the data from the file and display it.
            using (StreamReader sr = new StreamReader(s))
            {
                Console.WriteLine(sr.ReadLine());
            }
        }
    }
}

// This code produces the following output.
//
//  Some test data.
Option Strict On
Imports System.Security.Permissions
Imports System.IO.IsolatedStorage
Imports System.IO


' Notify the CLR to only grant IsolatedStorageFilePermission to called methods. 
' This restricts the called methods to working only with storage files that are isolated 
' by user and assembly.
<IsolatedStorageFilePermission(SecurityAction.PermitOnly, UsageAllowed:=IsolatedStorageContainment.AssemblyIsolationByUser)> _
Public NotInheritable Class App

    Shared Sub Main()
        WriteIsolatedStorage()
    End Sub
    Shared Sub WriteIsolatedStorage()
        ' Attempt to create a storage file that is isolated by user and assembly.
        ' IsolatedStorageFilePermission granted to the attribute at the top of this file 
        ' allows CLR to load this assembly and execution of this statement.
        Dim s As New IsolatedStorageFileStream("AssemblyData", FileMode.Create, IsolatedStorageFile.GetUserStoreForAssembly())
        Try

            ' Write some data out to the isolated file.
            Dim sw As New StreamWriter(s)
            Try
                sw.Write("This is some test data.")
            Finally
                sw.Dispose()
            End Try
        Finally
            s.Dispose()
        End Try

        ' Attempt to open the file that was previously created.
        Dim t As New IsolatedStorageFileStream("AssemblyData", FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly())
        Try
            ' Read the data from the file and display it.
            Dim sr As New StreamReader(t)
            Try
                Console.WriteLine(sr.ReadLine())
            Finally
                sr.Dispose()
            End Try
        Finally
            t.Dispose()
        End Try

    End Sub
End Class

' This code produces the following output.
'
'  Some test data.

Remarques

Le tableau suivant décrit l’heure à laquelle chaque action de sécurité a lieu et les cibles qu’elle prend en charge.The following table describes the time that each security action takes place and the targets that it supports.

Important

Dans le .NET Framework 4.NET Framework 4, la prise en charge du runtime a été supprimée pour appliquer les demandes d’autorisation Deny, RequestMinimum, RequestOptional et RequestRefuse.In the .NET Framework 4.NET Framework 4, runtime support has been removed for enforcing the Deny, RequestMinimum, RequestOptional, and RequestRefuse permission requests. Ces demandes ne devraient pas être utilisées dans le code qui est basé sur le .NET Framework 4.NET Framework 4 ou version ultérieure.These requests should not be used in code that is based on .NET Framework 4.NET Framework 4 or later. Pour plus d’informations sur cette modification et les autres, consultez modifications de sécurité.For more information about this and other changes, see Security Changes.

Vous ne devez pas utiliser LinkDemand dans le .NET Framework 4.NET Framework 4.You should not use LinkDemand in the .NET Framework 4.NET Framework 4. Au lieu de cela, utilisez la SecurityCriticalAttribute pour restreindre l’utilisation des applications de confiance totale, ou utilisez Demand pour restreindre les appelants d’un niveau de confiance partiel.Instead, use the SecurityCriticalAttribute to restrict usage to fully trusted applications, or use Demand to restrict partially trusted callers.

Déclaration de l’action de sécuritéDeclaration of security action Heure de l’actionTime of action Cibles prises en chargeTargets supported
LinkDemand (ne pas utiliser dans la .NET Framework 4.NET Framework 4)LinkDemand (do not use in the .NET Framework 4.NET Framework 4) Compilation juste-à-tempsJust-in-time compilation Classe, méthodeClass, method
InheritanceDemand Temps de chargementLoad time Classe, méthodeClass, method
Demand Au moment de l'exécutionRun time Classe, méthodeClass, method
Assert Au moment de l'exécutionRun time Classe, méthodeClass, method
Deny (obsolète dans le .NET Framework 4.NET Framework 4)Deny (obsolete in the .NET Framework 4.NET Framework 4) Au moment de l'exécutionRun time Classe, méthodeClass, method
PermitOnly Au moment de l'exécutionRun time Classe, méthodeClass, method
RequestMinimum (obsolète dans le .NET Framework 4.NET Framework 4)RequestMinimum (obsolete in the .NET Framework 4.NET Framework 4) Durée d’octroiGrant time AssemblyAssembly
RequestOptional (obsolète dans le .NET Framework 4.NET Framework 4)RequestOptional (obsolete in the .NET Framework 4.NET Framework 4) Durée d’octroiGrant time AssemblyAssembly
RequestRefuse (obsolète dans le .NET Framework 4.NET Framework 4)RequestRefuse (obsolete in the .NET Framework 4.NET Framework 4) Durée d’octroiGrant time AssemblyAssembly

Pour plus d’informations sur les cibles d’attribut, consultez Attribute.For additional information about attribute targets, see Attribute.

S’applique à