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

Clase ResourcePermissionBase

 

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 ref class ResourcePermissionBase abstract : 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.(Invalida 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.(Invalida 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.(Invalida CodeAccessPermission::Intersect(IPermission^)).

System_CAPS_pubmethodIsSubsetOf(IPermission^)

Determina si el objeto de permiso actual es un subconjunto del permiso especificado.(Invalida 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.(Invalida 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.(Invalida 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 desarrolladores de 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.dll>

using namespace System;
using namespace System::Security::Permissions;
using namespace System::Collections;

[Flags]

public enum class MailslotPermissionAccess
{
   None = 0,
   Send = 1 << 1,
   Receive = 1 << 2 | MailslotPermissionAccess::Send
};


[Serializable]
public ref class MailslotPermissionEntry
{
private:
   String^ name;
   String^ machineName;
   MailslotPermissionAccess permissionAccess;

internal:
   MailslotPermissionEntry( ResourcePermissionBaseEntry^ baseEntry )
   {
      this->permissionAccess = (MailslotPermissionAccess)baseEntry->PermissionAccess;
      this->name = baseEntry->PermissionAccessPath[ 0 ]->ToString();
      this->machineName = baseEntry->PermissionAccessPath[ 1 ]->ToString();
   }

   ResourcePermissionBaseEntry^ GetBaseEntry()
   {
      array<String^>^newStrings = {this->Name,this->MachineName};
      ResourcePermissionBaseEntry^ baseEntry = gcnew ResourcePermissionBaseEntry( (int)(this->PermissionAccess),newStrings );
      return baseEntry;
   }

public:
   MailslotPermissionEntry( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName )
   {
      this->permissionAccess = permissionAccess;
      this->name = name;
      this->machineName = machineName;
   }

   property String^ Name 
   {
      String^ get()
      {
         return this->name;
      }
   }

   property String^ MachineName 
   {
      String^ get()
      {
         return this->machineName;
      }
   }

   property MailslotPermissionAccess PermissionAccess 
   {
      MailslotPermissionAccess get()
      {
         return this->permissionAccess;
      }
   }
};


[Serializable]
public ref class MailslotPermission: public ResourcePermissionBase
{
private:
   ArrayList^ innerCollection;
   void SetNames()
   {
      this->PermissionAccessType = MailslotPermissionAccess::typeid;
      array<String^>^newStrings = {"Name","Machine"};
      this->TagNames = newStrings;
   }


internal:
   void AddPermissionAccess( MailslotPermissionEntry^ entry )
   {
      ResourcePermissionBase::AddPermissionAccess( entry->GetBaseEntry() );
   }

   void Clear()
   {
      ResourcePermissionBase::Clear();
   }

   void RemovePermissionAccess( MailslotPermissionEntry^ entry )
   {
      ResourcePermissionBase::RemovePermissionAccess( entry->GetBaseEntry() );
   }


public:
   MailslotPermission()
   {
      SetNames();
   }

   MailslotPermission( PermissionState state )
      : ResourcePermissionBase( state )
   {
      SetNames();
   }

   MailslotPermission( MailslotPermissionAccess permissionAccess, String^ name, String^ machineName )
   {
      SetNames();
      this->AddPermissionAccess( gcnew MailslotPermissionEntry( permissionAccess,name,machineName ) );
   }

   MailslotPermission( array<MailslotPermissionEntry^>^permissionAccessEntries )
   {
      SetNames();
      if ( permissionAccessEntries == nullptr )
            throw gcnew ArgumentNullException( "permissionAccessEntries" );

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

   property ArrayList^ PermissionEntries 
   {
      ArrayList^ get()
      {
         if ( this->innerCollection == nullptr )
                  this->innerCollection = gcnew ArrayList;

         this->innerCollection->InsertRange( 0, safe_cast<ICollection^>(ResourcePermissionBase::GetPermissionEntries()) );
         return this->innerCollection;
      }
   }
};

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

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: