CodeAccessSecurityAttribute (Clase)
TOC
Collapse the table of content
Expand the table of content
Esta documentación está archivada y no tiene mantenimiento.

CodeAccessSecurityAttribute (Clase)

Actualización: noviembre 2007

Especifica la clase de atributo base para la seguridad de acceso a código.

Espacio de nombres:  System.Security.Permissions
Ensamblado:  mscorlib (en mscorlib.dll)

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

Esta clase de atributo asocia una SecurityAction, por ejemplo, Demand, a un atributo de seguridad personalizado.

Los tipos que se derivan de CodeAccessSecurityAttribute se utilizan como ayuda para limitar el acceso a recursos o a operaciones que se pueden proteger.

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. Se utiliza la clase de permiso correspondiente derivada de CodeAccessPermission para seguridad imperativa.

Notas para los herederos:

Todos los atributos de permisos derivados de esta clase deben tener un solo constructor que toma SecurityAction como único parámetro.

El ejemplo siguiente muestra un atributo de permiso derivado de la clase CodeAccessSecurityAttribute.

using System;
using System.IO;
using System.Runtime.Remoting;
using System.Security;
using System.Security.Permissions;
using System.Reflection;
using MyPermission;
// Use the command line option '/keyfile' or appropriate project settings to sign this assembly.
[assembly: System.Security.AllowPartiallyTrustedCallersAttribute ()]

namespace MyPermissionAttribute
{
    [AttributeUsage (AttributeTargets.Method | AttributeTargets.Constructor | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Assembly, AllowMultiple = true, Inherited = false)]
    [Serializable]
    sealed public class  NameIdPermissionAttribute : CodeAccessSecurityAttribute
    {
        private String m_Name = null;
        private bool m_unrestricted = false;

        public  NameIdPermissionAttribute (SecurityAction action): base( action )
        {
        }

        public String Name
        {
            get { return m_Name; }
            set { m_Name = value; }
        }

        public override IPermission CreatePermission ()
        {
            if (m_unrestricted)
            {
                throw new ArgumentException ("Unrestricted permissions not allowed in identity permissions.");
            }
            else
            {
                if (m_Name == null)
                    return new  NameIdPermission (PermissionState.None);

                return new  NameIdPermission (m_Name);
            }
        }
    }
}


System.Object
  System.Attribute
    System.Security.Permissions.SecurityAttribute
      System.Security.Permissions.CodeAccessSecurityAttribute
        System.Configuration.ConfigurationPermissionAttribute
        System.Data.Common.DBDataPermissionAttribute
        System.Data.OracleClient.OraclePermissionAttribute
        System.Diagnostics.EventLogPermissionAttribute
        System.Diagnostics.PerformanceCounterPermissionAttribute
        System.DirectoryServices.DirectoryServicesPermissionAttribute
        System.Drawing.Printing.PrintingPermissionAttribute
        System.Messaging.MessageQueuePermissionAttribute
        System.Net.DnsPermissionAttribute
        System.Net.Mail.SmtpPermissionAttribute
        System.Net.NetworkInformation.NetworkInformationPermissionAttribute
        System.Net.PeerToPeer.Collaboration.PeerCollaborationPermissionAttribute
        System.Net.PeerToPeer.PnrpPermissionAttribute
        System.Net.SocketPermissionAttribute
        System.Net.WebPermissionAttribute
        System.Security.Permissions.DataProtectionPermissionAttribute
        System.Security.Permissions.EnvironmentPermissionAttribute
        System.Security.Permissions.FileDialogPermissionAttribute
        System.Security.Permissions.FileIOPermissionAttribute
        System.Security.Permissions.GacIdentityPermissionAttribute
        System.Security.Permissions.HostProtectionAttribute
        System.Security.Permissions.IsolatedStoragePermissionAttribute
        System.Security.Permissions.KeyContainerPermissionAttribute
        System.Security.Permissions.MediaPermissionAttribute
        System.Security.Permissions.PermissionSetAttribute
        System.Security.Permissions.PrincipalPermissionAttribute
        System.Security.Permissions.PublisherIdentityPermissionAttribute
        System.Security.Permissions.ReflectionPermissionAttribute
        System.Security.Permissions.RegistryPermissionAttribute
        System.Security.Permissions.SecurityPermissionAttribute
        System.Security.Permissions.SiteIdentityPermissionAttribute
        System.Security.Permissions.StorePermissionAttribute
        System.Security.Permissions.StrongNameIdentityPermissionAttribute
        System.Security.Permissions.UIPermissionAttribute
        System.Security.Permissions.UrlIdentityPermissionAttribute
        System.Security.Permissions.WebBrowserPermissionAttribute
        System.Security.Permissions.ZoneIdentityPermissionAttribute
        System.ServiceProcess.ServiceControllerPermissionAttribute
        System.Transactions.DistributedTransactionPermissionAttribute
        System.Web.AspNetHostingPermissionAttribute

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, 1.1, 1.0
Mostrar:
© 2016 Microsoft