Exigindo confiança total para tipos em um assembly APTCA

Quando AllowPartiallyTrustedCallersAttribute (APTCA) for colocado em um assembly, o LinkDemand implícito que requer que todos os chamadores sejam totalmente confiáveis estará desativado. Em algumas situações, convém determinadas membros ou classes em um conjunto para ser acessível pelo código parcialmente confiável, mas deseja que outros membros ou classes no mesmo assembly são protegidas de código parcialmente confiável. As etapas a seguir permitem que você forneça acesso a determinadas membros ou classes a partir de um código parcialmente confiável, enquanto ainda nega o acesso a outros membros e classes a partir de um código parcialmente confiável:

  1. Assine seu código com um nome de alta segurança.

  2. Aplique o atributo AllowPartiallyTrustedCallersAttribute ao assembly de modo que os chamadores parcialmente confiáveis podem usá-lo.

  3. Aplicar uma demanda para confiança total para o membro ou classe específico dentro do assembly da etapa 2 que você deseja proteger dos chamadores parcialmente confiáveis.

Dica

Em .NET Framework 4, aplicar o atributo SecurityCriticalAttribute a um tipo ou membro em um conjunto APTCA tem o mesmo efeito que aplicando uma demanda de link para confiança total em um tipo ou membro.Para obter mais informações, consulte Código transparente de segurança, nível 2.

A seguir estão as demandas que podem ser colocadas em seu código para limitar o acesso de códigos parcialmente confiáveis:

  • Para fazer um LinkDemand para confiança total, aplique o seguinte a uma classe ou um membro.

    <PermissionSetAttribute(SecurityAction.LinkDemand, Name:="FullTrust")>
    
    [PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
    
  • Para fazer uma demanda de link exigir que os chamadores tenham a capacidade de chamar um código não gerenciado, aplique o exemplo a seguir a uma classe ou um membro.

    <SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode:=True)>
    
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode=true)]
    
  • Para fazer uma demanda de herança para confiança total, aplique o seguinte a uma classe ou um membro.

    <PermissionSet(SecurityAction.InheritanceDemand, Name:="FullTrust")>
    
    [PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust")]
    

Consulte também

Conceitos

Usando bibliotecas de código parcialmente confiável

Outros recursos

Segurança de acesso do código