ResourcePermissionBase Clase
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

ResourcePermissionBase (Clase)

 

Permite el control de acceso al código los permisos de seguridad.

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


[SerializableAttribute]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
	ControlEvidence = true, ControlPolicy = true)]
public abstract class ResourcePermissionBase : CodeAccessPermission, 
	IUnrestrictedPermission

NombreDescripción
System_CAPS_protmethodResourcePermissionBase()

Inicializa una nueva instancia de la clase ResourcePermissionBase.

System_CAPS_protmethodResourcePermissionBase(PermissionState)

Inicializa una nueva instancia de la ResourcePermissionBase clase con el nivel de acceso a los recursos en la creación del especificado.

NombreDescripción
System_CAPS_protpropertyPermissionAccessType

Obtiene o establece un valor de enumeración que describe los tipos de acceso que se está asignando al recurso.

System_CAPS_protpropertyTagNames

Obtiene o establece una matriz de cadenas que identifican el recurso que se va a proteger.

NombreDescripción
System_CAPS_protmethodAddPermissionAccess(ResourcePermissionBaseEntry)

Agrega una entrada de permiso al permiso.

System_CAPS_pubmethodAssert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso. El uso de Assert puede crear problemas de seguridad.(Heredado de CodeAccessPermission.)

System_CAPS_protmethodClear()

Borra el permiso de las entradas de permiso agregadas.

System_CAPS_pubmethodCopy()

Crea y devuelve una copia idéntica del objeto de permiso actual.(Reemplaza a CodeAccessPermission.Copy()).

System_CAPS_pubmethodDemand()

Fuerza a un SecurityException en tiempo de ejecución si todos los autores de llamada situados en la parte superior de la pila de llamadas no disponen del permiso especificado por la instancia actual.(Heredado de CodeAccessPermission.)

System_CAPS_pubmethodDeny()

Obsoleto.Impide que los autores de la llamada situados en la posición más alta de la pila de llamadas usen el código que llama a este método para tener acceso al recurso especificado por la instancia actual.(Heredado de CodeAccessPermission.)

System_CAPS_pubmethodEquals(Object)

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.(Heredado de CodeAccessPermission.)

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodFromXml(SecurityElement)

Reconstruye un objeto de seguridad con un estado especificado a partir de codificación XML.(Reemplaza a CodeAccessPermission.FromXml(SecurityElement)).

System_CAPS_pubmethodGetHashCode()

Obtiene un código hash para el objeto CodeAccessPermission que es adecuado para usarlo en algoritmos hash y las estructuras de datos, como una tabla hash.(Heredado de CodeAccessPermission.)

System_CAPS_protmethodGetPermissionEntries()

Devuelve una matriz de los ResourcePermissionBaseEntry objetos agregados a este permiso.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object.)

System_CAPS_pubmethodIntersect(IPermission)

Crea y devuelve un objeto de permiso que es la intersección del objeto de permiso actual y un objeto de permiso de destino.(Reemplaza a CodeAccessPermission.Intersect(IPermission)).

System_CAPS_pubmethodIsSubsetOf(IPermission)

Determina si el objeto de permiso actual es un subconjunto del permiso especificado.(Reemplaza a CodeAccessPermission.IsSubsetOf(IPermission)).

System_CAPS_pubmethodIsUnrestricted()

Obtiene un valor que indica si el permiso está restringido.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object.)

System_CAPS_pubmethodPermitOnly()

Impide que los llamadores situados más arriba en la pila de llamadas usen el código que llama a este método para tener acceso a todos los recursos excepto al recurso especificado por la instancia actual.(Heredado de CodeAccessPermission.)

System_CAPS_protmethodRemovePermissionAccess(ResourcePermissionBaseEntry)

Quita una entrada de permiso del permiso.

System_CAPS_pubmethodToString()

Crea y devuelve una representación de cadena del objeto de permiso actual.(Heredado de CodeAccessPermission.)

System_CAPS_pubmethodToXml()

Crea y devuelve una codificación XML del objeto de seguridad y su estado actual.(Reemplaza a CodeAccessPermission.ToXml()).

System_CAPS_pubmethodUnion(IPermission)

Crea un objeto de permiso que combina el objeto de permiso actual y el objeto de permiso de destino.(Reemplaza a CodeAccessPermission.Union(IPermission)).

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticAny

Especifica el carácter que se va a utilizar para representar cualquier carácter comodín.

System_CAPS_pubfieldSystem_CAPS_staticLocal

Especifica el carácter que se va a utilizar para representar una referencia local.

System_CAPS_noteNota

La ResourcePermissionBase clase compara cadenas utilizando las reglas de ordenación ordinal y omite el caso de las cadenas que se comparan.

Notas para los herederos:

Al heredar de ResourcePermissionBase, debe proporcionar al menos tres constructores, establecer dos propiedades y proporcionar una tercera propiedad. Los constructores necesarios son: un constructor predeterminado, uno que acepte un PermissionState como parámetro y tanto como sea necesario que toman los valores de las propiedades. Las propiedades que deben establecerse son PermissionAccessType y TagNames. La tercera propiedad necesaria es aquella que devuelve las entradas de permisos. Para obtener un ejemplo de una implementación de esta clase, vea PerformanceCounterPermission. En PerformanceCounterPermission, el TagNames propiedad se establece de forma privada en "Machine" y "Category", la PermissionAccessType propiedad se establece de forma privada en el tipo de PerformanceCounterPermissionAccess, y el PermissionEntries propiedad devuelve las entradas de permisos.

En el siguiente ejemplo se hereda de la ResourcePermissionBase clase. se implementan los 4 tipos de constructores. El ejemplo también proporciona una implementación de una clase denominada MailslotPermissionEntry. El PermissionAccessType propiedad, a continuación, se establece de forma privada en el tipo de MailslotPermissionEntry. El TagNames propiedad se establece de forma privada en "Name" y "Equipo".

using System;        
using System.Security.Permissions;  
using System.Collections;

[Serializable()]
public class MailslotPermission: ResourcePermissionBase
{

	private ArrayList innerCollection;

	public MailslotPermission() 
	{
		SetNames();
	}                                                                

	public MailslotPermission(PermissionState state):base(state)
	{
		SetNames();
	}  

	public MailslotPermission(MailslotPermissionAccess permissionAccess, string name, string machineName)
	{
		SetNames();
		this.AddPermissionAccess(new MailslotPermissionEntry(permissionAccess, name, machineName));              
	}

	public MailslotPermission(MailslotPermissionEntry[] permissionAccessEntries) 
	{
		SetNames();
		if (permissionAccessEntries == null)
			throw new ArgumentNullException("permissionAccessEntries");

		for (int index = 0; index < permissionAccessEntries.Length; ++index)
			this.AddPermissionAccess(permissionAccessEntries[index]);                          
	}

	public ArrayList PermissionEntries 
	{
		get 
		{
			if (this.innerCollection == null)                     
				this.innerCollection = new ArrayList();
			this.innerCollection.InsertRange(0,base.GetPermissionEntries()); 

			return this.innerCollection;                                                               
		}
	}

	internal void AddPermissionAccess(MailslotPermissionEntry entry) 
	{
		base.AddPermissionAccess(entry.GetBaseEntry());
	}

	internal new void Clear() 
	{
		base.Clear();
	}

	internal void RemovePermissionAccess(MailslotPermissionEntry entry) 
	{
		base.RemovePermissionAccess(entry.GetBaseEntry());
	}

	private void SetNames() 
	{
		this.PermissionAccessType = typeof(MailslotPermissionAccess);
		this.TagNames = new string[]{"Name","Machine"};
	}                                
}

[Flags]         
public enum MailslotPermissionAccess 
{
	None = 0,
	Send = 1 << 1,
	Receive = 1 << 2 | Send,
} 

[Serializable()]     
public class MailslotPermissionEntry 
{
	private string name;
	private string machineName;
	private MailslotPermissionAccess permissionAccess;

	public MailslotPermissionEntry(MailslotPermissionAccess permissionAccess, string name, string machineName) 
	{
		this.permissionAccess = permissionAccess;
		this.name = name;
		this.machineName = machineName;
	}  

	internal MailslotPermissionEntry(ResourcePermissionBaseEntry baseEntry) 
	{
		this.permissionAccess = (MailslotPermissionAccess)baseEntry.PermissionAccess;
		this.name = baseEntry.PermissionAccessPath[0]; 
		this.machineName = baseEntry.PermissionAccessPath[1]; 
	}

	public string Name 
	{
		get 
		{                
			return this.name;                
		}                        
	}

	public string MachineName 
	{
		get 
		{                
			return this.machineName;                
		}                        
	}

	public MailslotPermissionAccess PermissionAccess 
	{
		get 
		{
			return this.permissionAccess;
		}                        
	}      

	internal ResourcePermissionBaseEntry GetBaseEntry() 
	{
		ResourcePermissionBaseEntry baseEntry = new ResourcePermissionBaseEntry((int)this.PermissionAccess, new string[] {this.Name,this.MachineName});            
		return baseEntry;
	}

}

SecurityPermission

for the right to control policy. Security action: F:System.Security.Permissions.SecurityAction.InheritanceDemand. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.ControlPolicy.

SecurityPermission

for the right to control evidence. Security action: F:System.Security.Permissions.SecurityAction.InheritanceDemand. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.ControlEvidence.

.NET Framework
Disponible desde 1.1

Los miembros estáticos públicos (Shared en Visual Basic) 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.

Volver al principio
Mostrar:
© 2016 Microsoft