GacIdentityPermissionAttribute Clase

Definición

Advertencia: Obsoleto

Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}

Permite acciones de seguridad de GacIdentityPermission para que se apliquen al código mediante seguridad declarativa.Allows security actions for GacIdentityPermission to be applied to code using declarative security. Esta clase no puede heredarse.This class cannot be inherited.

public ref class GacIdentityPermissionAttribute sealed : System::Security::Permissions::CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
public sealed class GacIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class GacIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class GacIdentityPermissionAttribute : System.Security.Permissions.CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
type GacIdentityPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type GacIdentityPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
[<System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Struct, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type GacIdentityPermissionAttribute = class
    inherit CodeAccessSecurityAttribute
Public NotInheritable Class GacIdentityPermissionAttribute
Inherits CodeAccessSecurityAttribute
Herencia
Atributos

Ejemplos

El siguiente ejemplo muestra el uso de GacIdentityPermissionAttribute.The following example demonstrates the use of 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 <mscorlib.dll>
//#using <ClassLibrary1.dll>
//using namespace System;
//using namespace System::Security;
//using namespace System::Reflection;
//using namespace ClassLibrary1;
//[assembly: AssemblyVersion(S"1.0.555.0")]
//[assembly: AssemblyKeyFile(S"snKey.snk")];
//int main()
//{ 
//    try
//    {
//        Class1* myLib = new Class1();
//        myLib->DoNothing();
//
//        Console::WriteLine(S"Exiting the sample.");
//    }
//    catch (Exception* e)
//    {
//        Console::WriteLine(e->Message);
//    }
//}
using namespace System;
using namespace System::Security::Permissions;

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

// 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.");
        }
    }
}

' 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.

'Imports System.Security
'Imports System.Security.Policy
'Imports System.Security.Principal
'Imports System.Security.Permissions
'Imports ClassLibraryVB

'Class [MyClass]
'
'    Overloads Shared Sub Main(ByVal args() As String)
'        Try
'           Dim myLib As New Class1
'            myLib.DoNothing()
'
'            Console.WriteLine("Exiting the sample.")
'        Catch e As Exception
'            Console.WriteLine(e.Message)
'        End Try
'    End Sub
'End Class
Imports System.Security.Permissions

' Demand that the calling program be in the global assembly cache.
<GacIdentityPermissionAttribute(SecurityAction.Demand)> _
Public Class Class1
    Public Sub DoNothing()
        Console.WriteLine("Exiting the library program.")
    End Sub
End Class

Comentarios

Importante

Ya no se admite el código de confianza parcial.Partially trusted code is no longer supported. Este atributo no tiene ningún efecto en .NET Core.This attribute has no effect in .NET Core.

Esta clase se utiliza para asegurarse de que los llamadores se registran en la caché de ensamblados global (GAC).This class is used to ensure that callers are registered in the global assembly cache (GAC).

El ámbito de la declaración que se permite depende del SecurityAction valor que se utiliza.The scope of the declaration that is allowed depends on the SecurityAction value that is used.

La información de seguridad declarada por un atributo de seguridad se almacena en los metadatos del destino de atributo y el sistema obtiene acceso a ella en tiempo de ejecución.The security information declared by a security attribute is stored in the metadata of the attribute target and is accessed by the system at run time. Los atributos de seguridad se usan solo para la seguridad declarativa.Security attributes are used only for declarative security. Para la seguridad imperativa, utilice la clase de permiso correspondiente, GacIdentityPermission .For imperative security, use the corresponding permission class, GacIdentityPermission.

Importante

A partir de .NET Framework 4.NET Framework 4 , no se usan los permisos de identidad.Starting with the .NET Framework 4.NET Framework 4, identity permissions are not used.

En las .NET Framework versiones 1,0 y 1,1, las demandas de los permisos de identidad son eficaces incluso cuando el ensamblado que realiza la llamada es de plena confianza.In the .NET Framework versions 1.0 and 1.1, demands on the identity permissions are effective even when the calling assembly is fully trusted. Es decir, aunque el ensamblado que realiza la llamada tenga plena confianza, se produce un error en una solicitud para un permiso de identidad si el ensamblado no cumple los criterios solicitados.That is, although the calling assembly has full trust, a demand for an identity permission fails if the assembly does not meet the demanded criteria. En la versión .NET Framework 2,0, las peticiones de permisos de identidad son ineficaces si el ensamblado que realiza la llamada tiene plena confianza.In the .NET Framework version 2.0, demands for identity permissions are ineffective if the calling assembly has full trust. Esto garantiza la coherencia para todos los permisos, lo que elimina el tratamiento de los permisos de identidad como caso especial.This assures consistency for all permissions, eliminating the treatment of identity permissions as a special case.

Para obtener más información sobre el uso de atributos, vea atributos.For more information about using attributes, see Attributes.

Constructores

GacIdentityPermissionAttribute(SecurityAction)

Inicializa una nueva instancia de la clase GacIdentityPermissionAttribute con el valor SecurityAction especificado.Initializes a new instance of the GacIdentityPermissionAttribute class with the specified SecurityAction value.

Propiedades

Action

Obtiene o establece una acción de seguridad.Gets or sets a security action.

(Heredado de SecurityAttribute)
TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Heredado de Attribute)
Unrestricted

Obtiene o establece un valor que indica si se declara el permiso completo (sin restricciones) al recurso protegido por el atributo.Gets or sets a value indicating whether full (unrestricted) permission to the resource protected by the attribute is declared.

(Heredado de SecurityAttribute)

Métodos

CreatePermission()

Crea un nuevo objeto GacIdentityPermission.Creates a new GacIdentityPermission object.

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de Attribute)

Se aplica a