Compartilhar via


Ferramenta Calculadora de permissão (permcalc.exe)

A ferramenta Minimum Grant conjunto determinação (permcalc.exe) é usada para estimar que os chamadores permissões devem ser concedidos ao acessar os pontos de entrada pública de um assembly. Essa ferramenta é nova no .NET estrutura versão 2.0. Ele é destinado ao uso por usuários avançados.

PermCalc [options] assemblyName [assemblyDependencyName…]

Parâmetros

Opção

Descrição

-CleanCache

Reconstrói a todos os arquivos de cache.

-HostProtection

Informações de relatórios sobre HostProtectionAttribute protegido por categorias.

-Internet

Em casos onde valores de permissão exata não podem ser determinados, usa permissões da zona Internet sistema autônomo uma estimativa. O padrão é overestimate por meio de um estado de permissão irrestrita onde os valores de permissão não podem ser determinados.

-Out fileName

Direciona saída para fileName. O padrão é assemblyName. PermCalc.xml ou sandbox.PermCalc.xml se a -Sandbox opção é especificada.

-Sandbox

Informa a caixa de proteção de permissão mínima na qual um aplicativo pode executar em vez das permissões necessárias por chamadores de ponto de entrada.

-Show

Exibe o arquivo de saída quando concluído.

-Stacks

Inclui pilhas de chamadas na saída para mostrar a origem de demandas de permissão.

-Under

Em casos onde valores de permissão exata não podem ser determinados, tentará subestimar as permissões. O padrão é overestimate quando valores de permissão não podem ser determinados.

-?

Exibe informações de uso.

Argumento

Descrição

assemblyName

O assembly para calcular as permissões para.

assemblyDependencyName

Um assembly que assemblyName depende.

Comentários

A ferramenta mínimos Grant Set determinação calcula o conjunto de permissão mínima necessário para executar um aplicativo ao examinar todos os caminhos de código aplicável de todos os conjuntos de aplicativos e assemblies de dependência. A ferramenta retorna um conjunto por aplicativo assembly de permissões.

A ferramenta a partir do ponto de entrada do aplicativo, rastreia todos os caminhos de código por meio de todos os assemblies do aplicativo e o compartilhada e bibliotecas do sistema chamada do aplicativo. A ferramenta mantém um simulado telefonar pilha que contém todos os assemblies envolvidos no rastreamento de caminho de código. No rastreamento cada caminho de código, a ferramenta verifica a presença de demandas declarativas, demandas de link e modificadores de declarativa pilha walk. Porque todos os estados de permissão usados em ações de segurança declarativa deve ser conhecida no momento da compilar, os efeitos de todas as ações de segurança declarativa no aplicativo módulos (assemblies) podem ser calculados exatamente. Por exemplo, se for usada uma demanda declarativa, o mínimo conceder permissão de definir cada conjunto de módulos (assembly) na telefonar pilha nesse momento é atualizada com o conjunto de permissões usados desse sistema operacional. Se for encontrada uma declaração declarativa na simulado telefonar pilha, e, em seguida, apenas a interseção entre o conjunto de permissões confirmado e o conjunto de permissões usados desse sistema operacional será atualizada para todos os assemblies acima declaração no telefonar pilha. Da mesma forma, se uma demanda de link for encontrada, somente o telefonar er sobre o simulado telefonar pilha acima do ponto de demanda de link é atualizada com o conjunto de permissão solicitada.

Parte o rastreamento de caminho de código é um rastreamento por meio de Microsoft intermediate linguagem (MSIL) de cada método, começando com o método de ponto de entrada principal do aplicativo. Se forem encontradas ações do conjunto de permissão imperativa no método MSIL rastreamento, o seguinte algoritmo de atualização é executado para cada assembly:

  • Se o estado de permissão em demanda imperativa, demanda de link, declarar, só permitir ou negar pode ser determinado estaticamente, é certo, a não ser dependente de qualquer estado disponível somente em time de execução, e o efeito de tal ação de segurança em conjuntos de aplicativos pode ser determinado e é calculado para os efeitos das ações de segurança declarativa no conjunto de permissão de concessão mínimo de todos os assemblies com perfil.

  • Se não for possível determinar o estado do conjunto de permissões usado em uma ação de segurança imperativa estaticamente, em seguida, o estado irrestrito da permissão será adotado, por exemplo, permissão de segurança irrestrita ou permissões de leitura de E/S de arquivo irrestrito. Em alguns casos isso pode levar a um overestimation das permissões necessárias para que um aplicativo seja executado. Use o -Under opção para substituir esse comportamento padrão.

  • Se houver vários caminhos de código por meio de um método e alguns possuem as anotações de ação de segurança diferentes e, em seguida, a união entre as demandas e a interseção das declarações são usados, porque a ferramenta não poderá determinar quais dos caminhos de código possível por meio de um método levará o aplicativo em time de execução.

Dependendo do dimensionar e complexidade de assemblies e suas dependências, a ferramenta pode levar alguns minutos para executar uma análise completa.

Exemplos

Você pode executar os exemplos a seguir, digitando os comandos em oPrompt de comando SDK  janela, substituindo os nomes de arquivo para aqueles nos exemplos.

O seguinte comando reconstrói todos os arquivos de cache e inclui pilhas de chamadas para o mylib.dll assembly. Ele exibe a saída no visualizador padrão para arquivos XML.

Permcalc.exe -cleancache -stacks -show mylib.dll

O comando a seguir informa a caixa de proteção de permissão mínima a myapp.exe aplicativo precisa ser executado. Ele exibe a saída no visualizador padrão para arquivos XML. O arquivo de destino for myapp.exe, e os arquivos dependentes são mydep1.dll e mydep2.dll.

Permcalc.exe -sandbox -show myapp.exe mydep1.dll mydep2.dll

Consulte também

Referência

Ferramentas.NET Framework

Prompt de comando SDK