Compartilhar via


Demandas de herança

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

Demandas de herança de classe

Uma demanda herdada aplicada a uma classe tem o efeito de exigentes todas as classes derivadas da classe pai têm a permissão especificada.Por exemplo, se for de classe B herdar da classe A e A classe é protegido por uma demanda de herança, em seguida, B precisa ter a permissão que para executar.Se a classe B essa permissão é concedida e deriva da classe A, em seguida, de classe C deve também ter a permissão exigidos pela, se ele estiver derivam B.Essa demanda pode ser aplicada somente declarativamente.

O exemplo de código a seguir usa uma demanda de herança para exigir que qualquer classe que herda a partir de MyClass1 classe deve ter a permissão personalizada CustomPermissionAttribute. Esta permissão é uma permissão personalizada hipotética e não existe no .NET estrutura.A solicitação é feita pelo passando o CustomPermissionAttribute um SecurityAction.InheritanceDemand valor de enumeração.

<CustomPermissionAttribute(SecurityAction.InheritanceDemand)> _
Public Class MyClass1
    Public Sub New()
    End Sub 
   
    Public Overridable Function ReadData() As String
        ' Access a custom resource.
    End Function
End Class    
[CustomPermissionAttribute(SecurityAction.InheritanceDemand)]
public class MyClass
{
    public MyClass()
    {    
    }   

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

Demandas de herança do método

Colocando uma demanda de herança em um método estático na classe base não tem impacto sobre as classes derivadas como os métodos estáticos são não relacionados.No entanto, colocando uma demanda de herança em qualquer método na classe base tem o mesmo efeito sistema autônomo uma demanda de herança da classe.Todos os métodos na classe derivada, incluindo o construtor da classe devem atender à demanda de herança.

Consulte também

Conceitos

Demandas de segurança

Criando suas próprias permissões de acesso ao código

Adicionando suporte à segurança declarativa

Outros recursos

Estendendo metadados usando atributos

Segurança de Acesso de código