Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Demandas de link

Uma procura de link causa uma verificação de segurança durante a compilação just-in-time e verifica apenas o assembly imediata de chamada de seu código. Vincular ocorre quando o código é associado a uma referência de tipo, incluindo referências de ponteiro de função e chamadas de método. Se o assembly de chamada não tem permissão suficiente para vincular ao seu código, o vínculo não é permitido e uma exceção em tempo de execução é lançada quando o código é carregado e execução. As demandas de link podem ser substituídas em classes que herdam de seu código.

Observe que uma exames completa da pilha não será executada com esse tipo de procura e que seu código ainda é improvável que a ataques de atração. Por exemplo, se um método no assembly A é protegida por uma procura de link, um chamador direto no assembly que B é avaliado com base nas permissões de assembly B. No entanto, a procura de vínculo não avaliada como um método no assembly C se chama o método indiretamente no assembly A usando o método no assembly B. A procura de link especifica apenas as permissões que os chamadores diretos no assembly imediata de chamada devem ter que indique ao seu código. Não especifica as permissões que todos os chamadores devem ter que executar seu código.

Assert , Deny, e os modificadores de exames da pilha de PermitOnly não afetam a avaliação das demandas do link. Como as demandas de vínculo não executam uma exames da pilha, os modificadores de exames da pilha não têm nenhum efeito nas demandas do link.

Se um método protegido por uma procura de link é acessado com Reflexão no .NET Framework, a procura de link verifica o chamador imediato de código acessado com a reflexão. Isso é verdadeiro para descoberta do método e para a invocação do método executada usando a reflexão. Por exemplo, suponha que a reflexão dos usos de código para retornar um objeto de MethodInfo que representa um método protegido por uma procura e depois por passagens de link que objeto de MethodInfo a algum outro código que usa o objeto para chamar o método original. Nesse caso a verificação de procura de link ocorre duas vezes: uma vez para o código que retorna o objeto de MethodInfo e outra para o código que o chama.

Observação Observação

Uma procura de link executada em um construtor estático da classe não protege o construtor por que os construtores estáticos são chamados pelo sistema, fora do caminho de execução do código de aplicativo. No resultado, quando uma procura de link é aplicada a uma classe inteira, não pode proteger o acesso a um construtor estático, embora proteger o restante da classe.

O seguinte fragmento de código declarativa especifica que qualquer codificação vincular a ReadData o método deve ter permissão de CustomPermission . Essa permissão é uma permissão personalizada hipotética, e não existe no .NET Framework. A demanda é feito transmitindo um sinalizador de SecurityAction.LinkDemand a CustomPermissionAttribute.

[CustomPermissionAttribute(SecurityAction.LinkDemand)]
public static string ReadData()
{
    // Access a custom resource.
}

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft