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 MustInherit Class ResourcePermissionBase
	Inherits CodeAccessPermission
	Implements 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".

Imports System
Imports System.Security.Permissions
Imports System.Collections

<Serializable()> Public Class MailslotPermission
    Inherits ResourcePermissionBase

    Private innerCollection As ArrayList


    Public Sub New()
        SetNames()
    End Sub 'NewNew


    Public Sub New(ByVal state As PermissionState)
        MyBase.New(state)
        SetNames()
    End Sub 'NewNew


    Public Sub New(ByVal permissionAccess As MailslotPermissionAccess, ByVal name As String, ByVal machineName1 As String)
        SetNames()
        Me.AddPermissionAccess(New MailslotPermissionEntry(permissionAccess, name, machineName1))
    End Sub 'NewNew


    Public Sub New(ByVal permissionAccessEntries() As MailslotPermissionEntry)
        SetNames()
        If permissionAccessEntries Is Nothing Then
            Throw New ArgumentNullException("permissionAccessEntries")
        End If
        Dim index As Integer

        While index < permissionAccessEntries.Length
            Me.AddPermissionAccess(permissionAccessEntries(index))
        End While
    End Sub 'New 

    Public ReadOnly Property PermissionEntries() As ArrayList
        Get
            If Me.innerCollection Is Nothing Then
                Me.innerCollection = New ArrayList()
            End If
            Me.innerCollection.InsertRange(0, MyBase.GetPermissionEntries())

            Return Me.innerCollection
        End Get
    End Property


    Friend Overloads Sub AddPermissionAccess(ByVal entry As MailslotPermissionEntry)
        MyBase.AddPermissionAccess(entry.GetBaseEntry())
    End Sub 'AddPermissionAccess


    Friend Shadows Sub Clear()
        MyBase.Clear()
    End Sub 'Clear


    Friend Overloads Sub RemovePermissionAccess(ByVal entry As MailslotPermissionEntry)
        MyBase.RemovePermissionAccess(entry.GetBaseEntry())
    End Sub 'RemovePermissionAccess


    Private Sub SetNames()
        Me.PermissionAccessType = GetType(MailslotPermissionAccess)
        Me.TagNames = New String() {"Name", "Machine"}
    End Sub 'SetNames
End Class 'MailslotPermission

<Flags()> Public Enum MailslotPermissionAccess
    None = 0
    Send = 2
    Receive = 4 Or Send
End Enum 'MailslotPermissionAccess

<Serializable()> Public Class MailslotPermissionEntry
    Private nameVar As String
    Private machineNameVar As String
    Private permissionAccessVar As MailslotPermissionAccess


    Public Sub New(ByVal permissionAccess As MailslotPermissionAccess, ByVal name As String, ByVal machineName1 As String)
        Me.permissionAccessVar = permissionAccess
        Me.nameVar = name
        Me.machineNameVar = machineName1
    End Sub 'NewNew


    Friend Sub New(ByVal baseEntry As ResourcePermissionBaseEntry)
        Me.permissionAccessVar = CType(baseEntry.PermissionAccess, MailslotPermissionAccess)
        Me.nameVar = baseEntry.PermissionAccessPath(0)
        Me.machineNameVar = baseEntry.PermissionAccessPath(1)
    End Sub 'NewNew


    Public ReadOnly Property Name() As String
        Get
            Return Me.nameVar
        End Get
    End Property


    Public ReadOnly Property MachineName() As String
        Get
            Return Me.machineNameVar
        End Get
    End Property


    Public ReadOnly Property PermissionAccess() As MailslotPermissionAccess
        Get
            Return Me.permissionAccessVar
        End Get
    End Property


    Friend Function GetBaseEntry() As ResourcePermissionBaseEntry
        Dim baseEntry As New ResourcePermissionBaseEntry(CInt(Me.PermissionAccess), New String() {Me.Name, Me.MachineName})
        Return baseEntry
    End Function 'GetBaseEntry


End Class 'MailslotPermissionEntry

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: