Esporta (0) Stampa
Espandi tutto

Classe GacIdentityPermissionAttribute

Aggiornamento: novembre 2007

Consente di applicare al codice azioni di sicurezza per l'oggetto GacIdentityPermission utilizzando la sicurezza dichiarativa. Questa classe non può essere ereditata.

Spazio dei nomi:  System.Security.Permissions
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple = true, 
	Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class GacIdentityPermissionAttribute : CodeAccessSecurityAttribute
/** @attribute SerializableAttribute */ 
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Constructor|AttributeTargets.Method, AllowMultiple = true, Inherited = false) */
/** @attribute ComVisibleAttribute(true) */
public final class GacIdentityPermissionAttribute extends CodeAccessSecurityAttribute
public final class GacIdentityPermissionAttribute extends CodeAccessSecurityAttribute

Questa classe garantisce la registrazione dei chiamanti nella GAC (Global Assembly Cache).

L'ambito consentito della dichiarazione dipende dal valore SecurityAction utilizzato.

Le informazioni di sicurezza dichiarate da un attributo di sicurezza sono archiviate nei metadati della destinazione dell'attributo e il sistema vi accede in fase di esecuzione. Gli attributi di sicurezza consentono solo sicurezza dichiarativa. Per applicare la sicurezza imperativa, utilizzare la classe di autorizzazioni corrispondente GacIdentityPermission.

Nota importante:

In .NET Framework versioni 1.0 e 1.1 le richieste relative alle autorizzazioni di identità sono effettive anche quando l'assembly chiamante è completamente attendibile. Anche se l'assembly chiamante dispone di attendibilità totale, una richiesta relativa a un'autorizzazione di identità non viene pertanto eseguita se l'assembly non soddisfa i criteri richiesti. In .NET Framework versione 2.0 le richieste relative ad autorizzazioni di identità non sono effettive se l'assembly chiamante dispone di attendibilità totale. In tal modo si assicura la coerenza per tutte le autorizzazioni e si evita che le autorizzazioni di identità vengano considerate come un caso speciale.

Per ulteriori informazioni sull'utilizzo degli attributi, vedere Estensione di metadati mediante attributi.

Nell'esempio che segue viene illustrato l'utilizzo di GacIdentityPermissionAttribute.

// To run this sample you must create a strong-name key named snkey.snk 
// using the Strong Name tool (sn.exe).  Both the library assembly and the 
// application assembly that calls it must be signed with that key.  
// To run successfully, the application assembly must be in the global 
// assembly cache.
// This console application can be created using the following code.

//using System;
//using System.Security;
//using System.Reflection;
//using ClassLibrary1;
//[assembly: AssemblyVersion("1.0.555.0")]
//[assembly: AssemblyKeyFile("snKey.snk")]
//class MyClass
//{
//    static void Main(string[] args)
//    {
//        try
//        {
//            Class1 myLib = new Class1();
//            myLib.DoNothing();
//
//            Console.WriteLine("Exiting the sample.");
//        }
//        catch (Exception e)
//        {
//        Console.WriteLine(e.Message);
//        }
//    }
//}
using System;
using System.Security.Permissions;

namespace ClassLibrary1
{
    // Demand that the calling program be in the global assembly cache.
    [GacIdentityPermissionAttribute(SecurityAction.Demand)]
    public class Class1
    {
        public void DoNothing()
        {
            Console.WriteLine("Exiting the library program.");
        }
    }
}



package ClassLibrary1 ; 
// To run this sample you must create a strong-name key named snkey.snk 
// using the Strong Name tool (sn.exe).  Both the library assembly and the 
// application assembly that calls it must be signed with that key.  
// To run successfully, the application assembly must be in the global 
// assembly cache.
// This console application can be created using the following code.

//import System .* ;
//import System.Security .* ;
//import System.Reflection .* ;
//import ClassLibrary1 .* ;
/** @assembly AssemblyVersion("1.0.555.0")
 */
/** @assembly AssemblyKeyFile("snKey.snk")
 */
//class MyClass
//{
//    static void main(String[] args)
//    {
//        try 
//        {
//            Class1 myLib =  new Class1();
//            myLib.DoNothing();
//
//            Console.WriteLine("Exiting the sample.");
//        }
//        catch(System.Exception e) 
//        {
//            Console.WriteLine(e.get_Message());
//        }
//    } //main
//} //MyClass

import System.*;
import System.Security.Permissions.*;

// Demand that the calling program be in the global assembly cache.
/** @attribute GacIdentityPermissionAttribute(SecurityAction.Demand)
 */

public class Class1
{
    public void DoNothing()
    {
        Console.WriteLine("Exiting the library program.");
    } //DoNothing
} //Class1


Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft