Permissões de acesso ao código e segurança no .NET Framework com Visual Basic
No .NET Framework, a segurança de acesso de código limita o acesso que o código tem a recursos e operações protegidos.Todos os aplicativos que acessam o Common Language Runtime devem interagir em tempo de execução com o sistema de segurança.Quando um aplicativo é executado, ele é avaliado e é fornecido um conjunto de permissões em tempo de execução automaticamente.Dependendo das permissões que o aplicativo recebe, ele é executado corretamente ou gera uma exceção de segurança.
As configurações de segurança local em um computador específico basicamente controla quais permissões seu código recebe.Como essas configurações podem alterar de computador para computador, você nunca poderá ter certeza que seu código receberá permissões suficientes para executar.Para obter mais informações, consulte Noções Básicas sobre Segurança de Accesso a Código.
Permissões de Acesso ao Código
Os Objetos de permissão de acesso ao código são usados para proteger os recursos e operações do uso por usuários não autorizados.Eles são parte fundamental do mecanismo do Common Language Runtime para impor restrições de segurança no código gerenciado.
Permissões de acesso ao código permitem que um usuário acessem um recurso protegido, como um arquivo, ou executar uma ação protegida, tais como acessar código gerenciado.Todas as permissões de acesso ao código pode ser solicitado pelo código; Se as permissões são concedidas sim ou não é determinado em tempo de execução.Cada permissão de acesso ao código deriva do CodeAccessPermission classe e portanto permissões tem métodos comuns: Assert, Demand, Deny, PermitOnly, IsSubSetOf, Intersect, e Union.
Permissões fornecidas pelo .NET Framework
Esta tabela mostra as permissões de acesso a código providas pelo .NET Framework.
Classe da permissão |
Permite |
---|---|
Acesso aos recursos em ambientes hospedados ASP.NET. |
|
Acesso a classes de System.DirectoryServices. |
|
Acesso aos servidores do sistema de nome de domínio (DNS) em uma rede. |
|
Leitura ou Gravação para variáveis de ambiente. |
|
Leitura ou gravação aos serviços de Log de eventos. |
|
Leitura ou gravação aos arquivos por meio de uma caixa de diálogo Open. |
|
Leitura ou gravação a arquivos ou pastas. |
|
Leitura ou gravação a arquivos ou pastas no armazenamento isolado. |
|
Acesso a filas de mensagens através da interface de gerenciamento do enfileiramento (também conhecido como MSMQ). |
|
Acessando a fontes de dados ODBC (Open Database Connectivity). |
|
Acessar a bancos de dados usando OLE DB. |
|
Acessar a bancos de dados Oracle. |
|
Acessando os contadores de desempenho. |
|
Acessar impressoras. |
|
Determinando as informações sobre um tipo em tempo de execução. |
|
Lendo do, gravação no, criando, ou excluindo chaves e valores de registro. |
|
Executar, afirmar permissões, chamado em código não gerenciado, ignorando a verificação, e outros direitos relacionados a segurança. |
|
Acessando serviços em execução ou parados. |
|
Fazer ou aceitar conexões em um endereço de transporte. |
|
Acessar bancos de dados SQL. |
|
Acessando funcionalidades da interface de usuário. |
|
Fazer ou aceitar conexões em um endereço da Web. |
Criando suas próprias permissões
O .NET Framework fornece um conjunto de classes para permissão de acesso ao código projetadas para ajudá-lo proteger um conjunto específico de recursos e operações, com enfoque sobre os recursos expostos pelo .NET Framework.Para a maioria dos ambientes, as permissões internas de acesso ao código são adequadas.Entretanto, em algumas situações, pode fazer sentido definir sua própria classe de permissão de acesso ao código.Para obter mais informações, consulte Criar suas próprias permissões de Acessar ao código.
Permissões de identidade
As permissões de identidade representam características que identificam um assembly.O common language runtime concede permissões de identidade em tempo de execução para um assembly quando ele for carregado, baseado nas informações obtidas sobre o assembly.Para obter mais informações, consulte Permissões de identidade.
Permissões baseadas em funções
Aplicativos comerciais geralmente fornecem acesso a dados ou recursos com base no credenciais fornecidas pelo usuário.Normalmente, esses aplicativos verificam a função de um usuário e fornecem acesso a recursos com base nessa função.O Common Language Runtime fornece o suporte para autorização baseada em função baseado em uma conta do Windows ou uma identidade personalizada.Para obter mais informações, consulte Segurança baseada em função.
Tarefas de segurança
A tabela a seguir lista as tarefas associadas à permissões e segurança.
Para |
Consulte |
---|---|
Solicitar permissão para acessar código não gerenciado |
Como: Solicitar Permissão para Acessar Código Não-Gerenciado |
Solicitar permissões opcionais |
Como: Solicitar permissões opcionais usando o sinalizador RequestOptional |
Solicitar permissão de um conjunto de permissão nomeado |
Como: Solicitar Permissão para um Conjunto de Permissões Nomeadas |
Solicitar permissões codificadas em XML |
|
Recusar permissões |
|
Executar uma verificação de imperativa de segurança |
|
Executar uma verificação declarativa de segurança |
|
Substituir uma verificação de segurança |
|
Compartilhar uma biblioteca com código parcialmente confiável |
Compartilhamento uma biblioteca com código parcialmente confiável |
Exigir confiança total para tipos em um assembly AllowPartiallyTrustedCallersAttribute |
Necessidade de confiança Completo para tipos em um AllowPartiallyTrustedCallersAttribute Assembly |
Criar objetos WindowsIdentity e WindowsPrincipal |
|
Criar objetos GenericPrincipal e GenericIdentity |
O modelo de diretiva de segurança no .Net Framework
Cinco elementos compõem o modelo de política de segurança no .NET Framework .Elas são:
Níveis de política de segurança: empresa, computador, usuário e domínio do aplicativo.
Grupos código que existe como uma hierarquia corporação, máquina, e usuário, dentro dos níveis de diretiva.
Conjuntos de permissões nomeadas e associadas com cada grupo de código.
Evidências que fornecem informações sobre a identidade do código.
Hosts do domínio do aplicativo que fornecem evidências sobre código para o Common Language Runtime.
Níveis de Diretiva de segurança
Quatro níveis de política de segurança são fornecidos pelo .NET Framework para calcular a concessão de permissão de um domínio de aplicativo ou assembly.Cada nível contém sua própria hierarquia de grupos de código e conjuntos de permissões.Em tempo de execução se calcula o conjunto de permissões permitidas, com a soma das permissões permitidas por todos os níveis de participação em cada diretiva
Os níveis são:
Diretiva corporativa.Se aplica a todo o código gerenciado em uma configuração de corporação onde um arquivo de configuração de corporação é distribuído.
Diretiva da máquina.Se aplica a todo o código gerenciado em um computador.
Diretiva de usuário.Se aplica ao código em todos os processos associado ao usuário atual do sistema operacional quando inicia o Common Language Runtime.
Aplicativo Diretiva de domínio.Se aplica ao código gerenciado no domínio do aplicativo do host.
Para obter mais informações, consulte Níveis de Diretiva de segurança.
Grupos de código
Um grupo de códigos é um agrupamento lógico de código que tem uma condição especificada para a associação.Qualquer código que atenda a condição de associação está incluído no grupo.Grupos código são associados a conjuntos de permissões que são avaliados durante a concessão de uma diretiva.Para obter mais informações, consulte Grupos de código.
O Conjunto de permissão nomeada
Um conjunto permissão nomeada é um conjunto de permissões que administradores podem associar a um grupo de códigos.Um conjunto de permissões nomeadas consiste de pelo menos uma permissão, bem como um nome e descrição para o conjunto.Mais um grupo de códigos podem ser associados a um conjunto de permissões específicas.
Esta tabela mostra os conjuntos nomeados de permissões fornecidas pelo Common Language Runtime.
Nome |
Descrição |
---|---|
Nothing |
Nenhuma permissão (o código não pode ser executado). |
Execution |
Permissão para executar, mas nenhuma permissão para usar recursos protegidos. |
Internet |
Permissão de diretiva padrão definida adequada ao conteúdo de origem desconhecida. |
Local Intranet |
Padrão de permissão diretiva definida em uma corporação. |
Everything |
Todos os padrões de permissões (internas), exceto a permissão para ignorar a verificação. |
FullTrust |
Acesso total a todos os recursos. |
Para obter mais informações, consulte O Conjunto de permissão nomeada.
Evidência
A evidência é a informação que o Common Language Runtime usa para tomar decisões com base em política de segurança.As evidências indicam em tempo de execução que código tem uma característica específica e pode incluir o diretório de aplicativo, o publisher, o site, e a URL.Para obter mais informações, consulte Evidência.
Host de domínio do aplicativo
Cada aplicativo do .NET Framework é executado em um domínio de aplicação sob o controle de um host que cria o domínio do aplicativo e carrega os assemblies nele.Os domínios de aplicativo podem incluir:
Hosts navegador.Executar o código dentro do contexto de um site da Web.
Hosts personalizados.Criar domínios e carregar módulos (assemblies) para domínios, incluindo montagens dinâmicas.
Servidor de Hosts. Executar o código que manipula as solicitações enviadas a um servidor.
Shell hosts.Inicia os aplicativos (arquivos.exe) do shell.
Esta tabela lista as tarefas associadas aos domínios de um aplicativo:
Para |
Consulte |
---|---|
Criar um domínio de aplicativo |
|
Definir a política de segurança a nível do domínio da aplicação |
Diretiva de segurança Configuração aplicativo nível do domínio |
Configurar um domínio do aplicativo |
|
Chamar funções em um domínio de aplicativo específico |
|
Recuperar informações de instalação de um domínio de aplicativo |
Recuperando Informações de Configuração de um Domínio de Aplicativo |
Descarregar um domínio de aplicativo |
Para obter mais informações, consulte AppDomain, Hosts do domínio de aplicativo, e Programação com domínios de aplicativo.
Consulte também
Tarefas
Solucionando problemas de exceções de segurança de Acessar de código
Conceitos
Isolamento por usuário, domínio e conjunto de módulos (assembly)
Outros recursos
Configurando a diretiva de segurança usando o código Acessar Security Policy Tool (Caspol.exe)