Solicitando permissões

Solicitar permissões é a maneira que você permitir que o tempo de execução saiba o que seu código precisa ter permissão para fazer.Você solicitação permissões para um assembly colocando atributos (sintaxe declarativa) no escopo de assembly de seu código.Quando o assembly é criado, o compilador da linguagem armazena as permissões solicitadas no manifesto do assembly.No time de carregamento, o tempo de execução examina as solicitações de permissão e aplica regras de diretiva de segurança para determinar quais permissões serem concedidas ao conjunto de módulos (assembly).Solicitações apenas influenciam o runtime para negar permissões para o seu código e nunca influenciar o tempo de execução para conceder mais permissões para seu código.A diretiva de administração local sempre tem controle final sobre as permissões máximas que seu código recebe.

Embora não tenha seu código para solicitação permissões para compilar, há razões importantes seu código deve sempre solicitação permissões:

  • Solicitar permissões aumenta a probabilidade de que seu código será executado corretamente se pode ser executada.Código que solicitação um conjunto mínimo de permissões não será executado, a menos que ele recebe essas permissões.Se você não identificar um conjunto mínimo de permissões, seu código normalmente deve tratar qualquer e todas as situações onde não sendo permissão alguns pode impedir que ele executar corretamente.

  • Solicitar permissões ajuda a garantir que seu código seja concedido somente as permissões necessárias.Se seu código não for concedido permissões extras, ele não pode danificar os recursos protegidos por essas permissões extras, mesmo que ele é explorado por códigos mal-intencionados ou tem bugs que podem ser aproveitados para danificar recursos.Você deve solicitação somente as permissões que seu código precisa e não há mais.

  • Solicitar permissões permite aos administradores saber as permissões mínimas que seu aplicativo precisa para que eles podem ajustar diretiva de segurança da mesma forma.Os administradores usam o Permissão Exibir ferramenta (Permview.exe) para examinar os assemblies e configurar diretiva de segurança para emitir as permissões necessárias.Se você fizer não explicitamente solicitação as permissões que seu aplicativo requer, a ferramenta de exibição de permissão não retorna informações sobre as permissões que seu aplicativo requer.Se um administrador não souber essas informações, seu aplicativo é difícil de administrar.

Solicitar permissões informa ao tempo de execução, as permissões que seu aplicativo precisa funcionar ou especificamente não quer.Por exemplo, se seu aplicativo grava no disco rígido local sem usar armazenamento isolado, seu aplicativo deve ter FileIOPermission. Se seu código não solicitação FileIOPermission e as configurações de segurança local não permitir que seu aplicativo tiver essa permissão, uma exceção de segurança é gerada quando o aplicativo tenta gravar no disco.Mesmo que o aplicativo pode tratar a exceção, ele não terão permissão para gravar no disco.Esse comportamento pode ser frustrante para os usuários se seu aplicativo é um programa de edição de texto utilizado por um longo período de time.Por Outros lado, se o aplicativo solicitar FileIOPermission e as configurações de segurança local não permitir que seu aplicativo para que o FileIOPermission, o aplicativo irá gerar a exceção quando ele for iniciado e o usuário não enfrentará o problema de perda de qualquer trabalho.Além disso, se o aplicativo solicitar FileIOPermission e se é um aplicativo confiável, o administrador pode ajustar a diretiva de segurança para permitir que ele executar a partir do compartilhamento remoto.

Se seu código não acessará protegidos por recursos ou executar operações protegidas, você não precisa solicitar as permissões.Por exemplo, uma solicitação de permissão não pode ser necessária se o código simplesmente computa um resultado com base nas entradas passadas para ele, sem usar os recursos.Se seu código acessar recursos protegidos, mas não solicitação as permissões necessárias, ele ainda pode ter permissão para executar, mas ele poderá falhar em algum momento durante a execução se ele tenta acessar um recurso para o qual não tem a permissão necessária.

Para solicitação permissões, você deverá saber quais recursos e operações protegidas seu código usa e você também deve saber quais permissões devem protegem esses recursos e operações.Além disso, você precisará manter o controle de todos os recursos acessados por qualquer método de biblioteca de classes é chamado de seus componentes.Para obter uma lista das permissões de acesso de código incluídos com o .NET estrutura, consulte o Permissões tópico.

A tabela a seguir descreve os tipos de solicitações de permissão.

Solicitação de permissão

Descrição

Permissões mínimas (RequestMinimum)

Permissões de que seu código deve ter para executar.

Permissões opcionais (RequestOptional)

Permissões seu código pode usar, mas pode ser executado com eficiência sem.Essa solicitação implicitamente se recusa a todas as outras permissões não especificamente solicitadas.

Permissões recusadas (RequestRefuse)

Permissões que você deseja garantir nunca serão concedidas ao seu código, mesmo se a diretiva de segurança permite que eles ser concedido.

Executar qualquer uma das solicitações acima em conjuntos de permissão interna (Solicitando conjuntos de permissões internas).

Conjuntos de permissão internos, incluindo Nada, Execução, FullTrust, Internet, LocalIntranet, and SkipVerification.

Executar qualquer uma das solicitações acima sobre conjuntos de permissões codificados em XML (Solicitando XML codificado permissões).

Representação em XML (uma seqüência que contém o conjunto de permissões codificados em XML ou o local de um arquivo XML que contém o conjunto de permissões codificado) de uma permissão de desejado define.

Se você especificar as permissões necessárias (usando RequestMinimum), o código será concedido cada necessária a permissão que diretiva de segurança permite.O código poderá ser executado somente se ele recebe todas as permissões requer.

Solicitar permissões opcionais sem solicitar as permissões necessárias também pode, em alguns casos, gravemente restringir as permissões concedidas a um assembly.Por exemplo, suponha que a diretiva de segurança concede normalmente assembly às permissões associadas a Tudo chamado permissão conjunto.Se o desenvolvedor do conjunto A solicita A permissão sistema autônomo opcionais e não solicita sistema autônomo permissões necessárias, A montagem recebem permissão A (se a diretiva de segurança permitir) ou sem permissões em todos sistema autônomo.

Consulte também

Tarefas

Como: Solicitar Permissão para um Conjunto de Permissões Nomeadas

Conceitos

Noções Básicas sobre Segurança de Accesso a Código

Manifesto do Assembly

Permissões de segurança

Solicitando permissões XML codificado

Política de segurança

Referência

FileIOPermission

SecurityAction.RequestMinimum

SecurityAction.RequestOptional

RequestRefuse

Outros recursos

Segurança de Acesso de código