Compartilhar via


Usando o método PermitOnly

De chamadaPermitOnly tem essencialmente o mesmo efeito que a chamada Deny mas é uma maneira diferente de especificar sistema autônomo condições sob sistema autônomo quais a verificação de segurança deve falhar. Em vez de dizer que um recurso especificado não pode ser acessado, sistema autônomo Negar does, PermitOnly diz que podem ser acessados somente sistema autônomo recursos que você especificar.Portanto, chamar PermitOnly na permissão X é a mesma chamada Negar em todas sistema autônomo permissões, exceto permissão X.If you telefonar PermitOnly, seu código pode ser usado para acessar somente os recursos protegidos por permissões que você especificar quando você telefonar PermitOnly.Usar PermitOnly em vez de Negar quando for mais conveniente descrever os recursos que podem ser acessados em vez de recursos que não podem ser acessados.

Se seu código chama PermitOnly em uma permissão P1 e chamadores downstream, em seguida, solicitar permissão P2, a PermitOnly telefonar afeta o resultado de pilha walk somente se P1 e P2 são de tipos diferentes e P2 não for um subconjunto de P1.

Os fragmentos de código a seguir mostram a sintaxe declarativa para a substituição de verificações de segurança usando PermitOnly.Os chamadores não podem usar esse código para acesso qualquer protegidos por recursos, exceto os recursos de interface de usuário..

Option Explicit
Option Strict
Imports System
Imports System.Security.Permissions
Public Class MyClass1
   Public Sub New()
   End Sub   
   <UIPermissionAttribute(SecurityAction.PermitOnly, Unrestricted := True)> Public Sub 
   ReadRegistry()
      'Access a UI resource.
   End Sub
End Class
using System;
using System.Security.Permissions;

public class MyClass
{
   public MyClass() {    
   }   
   
   [UIPermissionAttribute(SecurityAction.PermitOnly, Unrestricted=true)]
   public void ReadRegistry() { 
      //Access a UI resource.
   }  
}

O exemplo de código a seguir mostra sintaxe fundamental para a substituição de verificações de segurança usando o PermitOnly método.The UIPermission construtor é passado um PermissionState objeto que especifica os recursos de interface de usuário para a qual deve ser concedido acesso. Uma vez o PermitOnly método é chamado, o código e todos os chamadores podem ser usados apenas para acessar recursos de interface de usuário.

Option Explicit
Option Strict
Imports System
Imports System.Security.Permissions
Public Class MyClass1
   Public Sub New()
   End Sub
   Public Sub ReadRegistry()
      Dim MyPermission As New UIPermission(PermissionState.Unrestricted)
      MyPermission.PermitOnly()
      'Access a UI resource.
   End Sub 
End Class
using System;
using System.Security.Permissions;

public class MyClass {
   public MyClass() {    
   }   
   public void ReadRegistry() { 
      UIPermission MyPermission = new UIPermission(PermissionState.Unrestricted);
      MyPermission.PermitOnly();
      //Access a UI resource.
   }  
}

Consulte também

Conceitos

Substituindo verificações de segurança

Referência

Usando o método Deny

PermissionState

Outros recursos

Estendendo metadados usando atributos

Segurança de Acesso de código