Share via


Criando suas próprias permissões de acesso ao código

A.NET Framework fornece um conjunto de classes de permissão de acesso de código projetado para ajudar a proteger um conjunto específico de recursos e operações, enfocando os recursos expostos pelo.NET Framework. Essas classes de permissão são descritos brevemente na permissões tópico e em detalhes na documentação de referência para cada classe de permissão. Para a maioria dos ambientes, as permissões de acesso de código internos são adequadas. No entanto, em algumas situações, pode fazer sentido definir sua própria classe de permissão de acesso do código. Este tópico discute quando, por que e como definir classes de permissão de acesso de código personalizado.

Se você estiver definindo uma biblioteca de classe ou componente que acessa um recurso que não é coberto pelas classes de permissão interna, mas precisa ser protegido contra código não autorizado, você deve considerar a criação de uma classe de permissão de acesso de código personalizado. Se você deseja ser capaz de fazer solicitações declarativas sua permissão personalizada, você também deve definir um atributo classe para a permissão. Fornecendo essas classes e fazendo as demandas de permissão de dentro de sua biblioteca de classe permite que o tempo de execução impedir que o código não autorizado acesse o recurso e permite que um administrador configurar os direitos de acesso.

Existem outras situações nas quais uma permissão personalizada pode ser apropriada. Quando uma classe de permissão de acesso do código interno protege um recurso, mas não suficientemente controla o acesso a esse recurso, talvez você precise de uma permissão de acesso de código personalizado. Por exemplo, um aplicativo pode usar registros de pessoal para cada funcionário que o registro é armazenado em um arquivo separado; Nesse caso, acesso de leitura e gravação podem ser controlados independentemente para diferentes tipos de dados do funcionário. Uma ferramenta de gerenciamento interno pôde ser autorizada para ler algumas seções do arquivo pessoal do funcionário, mas não modificar essas seções. Na verdade, ele não ainda poderá ler algumas seções.

Permissões de acesso de código personalizado também são apropriadas em casos onde uma permissão interna existe mas não está definido de forma que lhe permite proteger o recurso apropriadamente. Por exemplo, pode haver um caso em que é funcionalidade de interface do usuário, como, por exemplo, a capacidade de criar menus, que devem ser protegidos, mas não está protegido por interno UIPermission classe. Nesse caso, você poderia criar uma permissão personalizada para proteger a capacidade de criar menus.

Sempre que possível, as permissões não devem se sobrepor. Ter mais de uma permissão protegendo um recurso apresenta um problema significativo para os administradores, que devem ser certeza lidar adequadamente com todas as permissões de sobreposição toda vez que eles configuram os direitos para acessar o recurso.

Implementar uma permissão de acesso de código personalizado envolve as etapas a seguir, algumas das quais são opcionais. Cada etapa é descrita em um tópico separado.

  1. Criar a classe de permissão.

  2. Implementar a IPermission e IUnrestrictedPermission interfaces.

  3. Implementar a ISerializable interface, se necessário, para desempenho ou para oferecer suporte a tipos de dados especial.

  4. Lidar com a codificação e decodificação de XML.

  5. Adicionar suporte para segurança declarativa, Implementando um atributo classe.

  6. Demanda de permissão personalizada para a sua permissão, onde apropriado.

Consulte também

Referência

FileIOPermission

UIPermission

IPermission

IUnrestrictedPermission

ISerializable

Conceitos

Segurança de Acesso de código

Permissões de segurança

Estendendo metadados usando atributos

Projetando uma permissão.

Adicionando suporte a segurança declarativa

Exigindo uma permissão personalizada