Exportar (0) Imprimir
Expandir todo

GacIdentityPermissionAttribute (Clase)

Actualización: noviembre 2007

Permite aplicar acciones de seguridad para GacIdentityPermission en el código mediante el uso de la seguridad declarativa. Esta clase no se puede heredar.

Espacio de nombres:  System.Security.Permissions
Ensamblado:  mscorlib (en 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

Esta clase se utiliza para garantizar que los llamadores se registran en la caché de ensamblados global (GAC).

El ámbito permitido de la declaración depende del valor de SecurityAction utilizado.

La información de seguridad declarada por un atributo de seguridad se almacena en los metadatos del destino del atributo y el sistema obtiene acceso a él en tiempo de ejecución. Los atributos de seguridad sólo se utilizan para la seguridad declarativa. Para obtener una seguridad imperativa, utilice la clase de permiso correspondiente, GacIdentityPermission.

y5c77t04.alert_caution(es-es,VS.90).gifNota importante:

En las versiones 1.0 y 1.1 de .NET Framework, las solicitudes de permisos de identidad son efectivas aunque el ensamblado que llama tenga plena confianza. Es decir, aunque el ensamblado que llama tenga plena confianza, una solicitud de un permiso de identidad sufrirá un error si el ensamblado no satisface los criterios requeridos. En .NET Framework versión 2.0, las solicitudes de permisos de identidad no son efectivas si el ensamblado que llama tiene plena confianza. De este modo, se garantiza la coherencia para todos los permisos, eliminando el tratamiento de permisos de identidad como un caso especial.

Para obtener más información acerca del uso de atributos, vea Extender metadatos mediante atributos.

En el siguiente ejemplo se muestra el uso de 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


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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 y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft