Share via


Richiesta dell'attendibilità completa per i tipi all'interno di un assembly APTCA

Quando all'interno di un assembly viene inserito l'oggetto AllowPartiallyTrustedCallersAttribute (APTCA), viene disabilitata la richiesta implicita LinkDemand che prevede chiamanti completamente attendibili. In alcune situazioni può essere preferibile fare in modo che alcuni membri o classi possano essere chiamati da codice parzialmente attendibile, proteggendo allo stesso tempo altri membri o classi dello stesso assembly da tale codice. La procedura riportata di seguito consente di fornire accesso ad alcuni membri o classi da codice parzialmente attendibile, negando contemporaneamente l'accesso ad altri membri o classi da questo tipo di codice.

  1. Firmare il codice con un nome sicuro.

  2. Applicare l'attributo AllowPartiallyTrustedCallersAttribute all'assembly per renderlo disponibile ai chiamanti parzialmente attendibili.

  3. Applicare, all'interno dell'assembly descritto al passaggio 2, la pretesa di attendibilità totale al membro o alla classe specificata che si desidera proteggere dai chiamanti parzialmente attendibili.

Nota

In .NET Framework 4 l'applicazione dell'attributo SecurityCriticalAttribute a un tipo o a un membro in un assembly APTCA ha lo stesso effetto dell'applicazione di una richiesta di collegamento per l'attendibilità totale a un tipo o a un membro.Per ulteriori informazioni, vedere Codice SecurityTransparent, livello 2.

Di seguito sono descritte le pretese che è possibile includere nel codice per limitare l'accesso da parte di codice parzialmente attendibile.

  • Per generare una pretesa LinkDemand di attendibilità totale, applicare a una classe o un membro la seguente istruzione:

    <PermissionSetAttribute(SecurityAction.LinkDemand, Name:="FullTrust")>
    
    [PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
    
  • Per generare una pretesa di collegamento in cui richiedere che i chiamanti possano chiamare codice non gestito, applicare a una classe o a un membro la seguente istruzione:

    <SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode:=True)>
    
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode=true)]
    
  • Per generare una pretesa di ereditarietà di attendibilità totale, applicare a una classe o un membro la seguente istruzione:

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

Vedere anche

Concetti

Utilizzo di librerie da codice parzialmente attendibile

Altre risorse

Sicurezza dall'accesso di codice