Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Biblioteca MSDN
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
Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Demandas de herança

Exigências de herança aplicadas às classes têm um significado diferente das demandas de herança aplicada aos métodos. Você pode colocar as demandas de herança em nível de classe para garantir que somente código com a permissão especificada pode herdar de sua classe. Demandas de herança colocadas em métodos exigem que o código tenha a permissão especificada para substituir o método.

Observação Observação

Um novo modelo de transparência foi introduzido em .NET Framework 4. O modelo de Código transparente de segurança, nível 2 identifica o código seguro com o atributo SecurityCriticalAttribute ou SecuritySafeCriticalAttribute. Código de segurança crítica exige que ambos os chamadores e herdeiros sejam totalmente confiáveis. Qualquer tipo ou membro que herda de um tipo ou membro de segurança crítica (security-critical) deve ser de segurança crítica ou de segurança crítica segura (security-safe-critical). Os assemblies que usam as regras de segurança de acesso do código anteriores (nível 1) podem chamar o nível 2 tipos e membros de segurança importantes se são confiáveis por meio de. Porém, os tipos de nível 2 e os membros devem especificamente identificar as demandas de herança, como as regras implícitas de herança de nível 2 não se aplicam aos visitantes de nível 1.

Uma procura herdada aplicada a uma classe tem o efeito de requerer que todas as classes derivadas da classe pai têm a permissão especificada. Por exemplo, se a classe B é herdada de A classe e a A classe é protegida por uma procura de herança, B deve ter permissão para executar. Se a classe B é concedida a permissão e se deriva de A classe, a classe C também deve ter a permissão necessária por, se for derivar de B. Essa solicitação pode ser aplicada somente declarativa imposta.

O exemplo de código a seguir usa uma procura de herança para exigir que qualquer classe que herde da classe de MyClass1 deve ter a permissão personalizado CustomPermissionAttribute. Essa permissão é uma permissão personalizada hipotética, e não existe no .NET Framework. A demanda é feita passando CustomPermissionAttribute um valor de enumeração SecurityAction.InheritanceDemand .

[CustomPermissionAttribute(SecurityAction.InheritanceDemand)]
public class MyClass
{
    public MyClass()
    {    
    }   

    public virtual string ReadData()
    {
        // Access a custom resource.
    }
}

Colocar uma procura de herança em um método estático na classe base não tem nenhum impacto em classes derivadas porque os métodos estáticos não estão relacionados. No entanto, coloque uma procura de herança em qualquer método não estático na classe base tem o mesmo efeito que a procura de herança na classe. Todos os métodos na classe derivada, incluindo o construtor da classe, devem atender a procura de herança.

Contribuições da comunidade

Mostrar:
© 2015 Microsoft