Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Segurança obrigatória

A sintaxe de segurança imperativa emite uma chamada de segurança criando uma nova instância do objeto de permissão que você quer invocar. Você pode usar a sintaxe imperativa para executar demandas e sobreposição, mas não solicitações.

Antes de fazer a chamada de segurança, você deve inicializar os dados de estado do objeto de permissão de modo que represente o formulário específico da permissão que você precisa. Por exemplo, ao criar um objeto FileIOPermission, você pode usar o construtor para inicializar o objeto FileIOPermission de modo que não represente o acesso irrestrito a todos os arquivos ou nenhum acesso aos arquivos. Ou você pode usar outro objeto FileIOPermission , passando parâmetros que indiquem que tipo de acesso o objeto deverá representar (para leitura, anexação ou gravação) e que arquivos ele deverá proteger.

Além de usar a sintaxe de segurança imperativa para invocar um único objeto de segurança, você pode usá-lo para inicializar um grupo de permissões em um conjunto de permissões. Por exemplo, essa técnica é a única maneira de executar confiavelmente chamadas assert em várias permissões de um método. Use as classes PermissionSet e NamedPermissionSet para criar um grupo de permissões e chamar o método apropriado para chamar a chamada desejado de segurança.

Você pode usar a sintaxe imperativa para executar demandas e sobreposição, mas não solicitações. Você pode usar a sintaxe imperativa para demandas e substituições em vez de sintaxe declarativa quando as informações que você precisa para inicializar o estado de permissão se tornarem conhecidas somente no tempo de execução. Por exemplo, se você quiser garantir que os chamadores tenham permissão para ler um determinado arquivo, mas você não souber o nome do arquivo até o tempo de execução, use uma demanda imperativa. Você também pode optar por usar verificações imperativas em vez de verificações declarativas ao precisar determinar no tempo de execução se uma condição contém e, com base no resultado de teste, efetua um requisito de segurança (ou não).

O fragmento de código a seguir mostra a sintaxe imperativa para solicitar que os chamadores de seu código tenham uma permissão personalizada chamada MyPermission. Essa permissão é uma permissão personalizada hipotética, e não existe no .NET Framework. Uma nova instância de MyPermision é criada no MyMethod, protegendo somente esse método com a chamada de segurança.

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.
   }
}

Contribuições da comunidade

Mostrar: