Segurança imperativa

Sintaxe de segurança imperativa emite uma telefonar de segurança, criando uma instância nova do objeto de permissão que você deseja chamar.Você pode usar sintaxe imperativa para realizar demandas e substituições, mas não as solicitações.

Antes de fazer a segurança de telefonar, você deve inicializar os dados do estado do objeto de permissão para que ele representa o formulário específico da permissão que você precisa.Por exemplo, ao criar um FileIOPermission o objeto, você pode usar o construtor para inicializar o FileIOPermission objeto para que ele representa acesso irrestrito a todos os arquivos ou sem acesso aos arquivos.Ou, você pode usar um outro FileIOPermission objeto, passando parâmetros que indicam o tipo de acesso você deseja o objeto para representar (isto é, ler, acrescentar ou gravar) e arquivos que você deseja que o objeto para proteger.

Juntamente com usando sintaxe de segurança imperativa para invocar um objeto de segurança, poder usá-lo para inicializar um agrupar de permissões chamado um conjunto de permissões.Por exemplo, essa técnica é a única maneira de executar com confiança declarar chama várias permissões em um método.Use o PermissionSet e NamedPermissionSet Ligue para classes para criar um agrupar de permissões e chamar o método apropriado para chamar segurança desejado.

Você pode usar sintaxe imperativa para realizar demandas e substituições, mas não as solicitações.Você pode usar sintaxe imperativa para demandas e substitui em vez da sintaxe declarativa quando informações necessárias inicializar o estado de permissão torna-se conhecido apenas em time de execução.Por exemplo, se você deseja garantir que os chamadores tem permissão para ler um determinado arquivo, mas você não souber o nome do arquivo até o time de execução, use uma demanda imperativa.Você também pode escolher para usar verificações imperativas em vez de verificações declarativas quando você precisa determinar em time de execução se uma condição de guarda e com base no resultado do teste, verifique uma demanda de segurança (ou não).

O fragmento de código a seguir mostra imperativo sintaxe para solicitar que chamadores do seu código têm uma permissão personalizada chamada MyPermission. Esta permissão é uma permissão personalizada hipotética e não existe no .NET estrutura.Uma nova instância de MyPermision é criado no MyMethod, preservando apenas esse método com a telefonar de segurança.

Public Class MyClass1
   
   Public Sub New()

   End Sub
   
   Public Sub MyMethod()
      'MyPermission is demanded using imperative syntax.
      Dim Perm As New MyPermission()
      Perm.Demand()
      'This method is protected by the security call.
   End Sub
   
   Public Sub YourMethod()
      'YourMethod 'This method is not protected by the security call.
   End Sub
End Class
public class MyClass {
   public MyClass(){
    
   }

   public void MyMethod() {
       //MyPermission is demanded using imperative syntax.
       MyPermission Perm = new MyPermission();
       Perm.Demand();
       //This method is protected by the security call.
   }

   public void YourMethod() {
       //This method is not protected by the security call.
   }
}

Consulte também

Conceitos

Sintaxe de segurança

O Conjunto de permissão nomeada

Usando o método Assert

Referência

FileIOPermission

Classe SystemSecurityPermissionSet

NamedPermissionSet

Outros recursos

Segurança de Acesso de código