Condividi tramite


Utilizzo di librerie da codice parzialmente attendibile

NotaNota

In questo argomento viene descritto il comportamento degli assembly con nome sicuro. L'argomento si applica solo ad assembly di livello 1.Gli assembly del Codice SecurityTransparent, livello 2 in .NET Framework versione 4 o versione successiva non sono interessati dai nomi sicuri.Per ulteriori informazioni sulle modifiche apportate al sistema di sicurezza, vedere Modifiche della sicurezza in .NET Framework 4.

Alle applicazioni che ricevono attendibilità inferiore a quella totale dall'host o dalla sandbox non è consentito di chiamare librerie gestite condivise a meno che l'autore della libreria non conceda specificamente questa autorizzazione tramite l'attributo AllowPartiallyTrustedCallersAttribute. Gli sviluppatori di applicazioni devono quindi tenere presente che alcune librerie non sono disponibili da un contesto parzialmente attendibile. Per impostazione predefinita, tutto il codice eseguito un una sandbox parzialmente attendibile e che non è presente nell'elenco di assembly con attendibilità totale è considerato parzialmente attendibile. Se non si prevede che il codice venga eseguito da un contesto parzialmente attendibile o sia chiamato da codice parzialmente attendibile, le informazioni contenute in questa sezione non sono necessarie. Se invece si scrive codice che dovrà interagire con codice parzialmente attendibile o funzionare da un contesto parzialmente attendibile, tenere presenti i seguenti fattori:

  • Le librerie devono essere firmate con un nome sicuro per consentirne la condivisione da parte di più applicazioni. I nomi sicuri consentono l'inserimento del codice nella Global Assembly Cache o l'aggiunta all'elenco di attendibilità totale di un oggetto AppDomain sandbox e consentono agli utenti di verificare che una parte di codice mobile abbia realmente origine dallo sviluppatore.

  • Per impostazione predefinita, le librerie condivise con nomi sicuri di livello 1 consentono di generare automaticamente una pretesa LinkDemand di attendibilità totale, senza ulteriori operazioni da parte dello sviluppatore della libreria.

  • Se un chiamante non dispone dell'attendibilità totale ma tenta comunque di chiamare una libreria di questo tipo, il runtime genera un oggetto SecurityException e il chiamante non viene autorizzato al collegamento alla libreria.

  • Per disabilitare la pretesa LinkDemand automatica e impedire la generazione dell'eccezione, è possibile inserire l'attributo AllowPartiallyTrustedCallersAttribute nell'ambito dell'assembly di una libreria condivisa. Questo attributo consente di chiamare le librerie da codice gestito parzialmente attendibile.

  • Il codice parzialmente attendibile cui è garantito l'accesso a una libreria con questo attributo rimane soggetto alle ulteriori limitazioni definite dall'oggetto AppDomain.

  • In fase di programmazione non è possibile impostare la chiamata di una libreria che non disponga dell'attributo AllowPartiallyTrustedCallersAttribute da codice parzialmente attendibile.

Le librerie private di un'applicazione specifica non richiedono la presenza di un nome sicuro o di un attributo AllowPartiallyTrustedCallersAttribute e non è possibile farvi riferimento da codice potenzialmente non autorizzato al di fuori dell'applicazione. Il codice di questo tipo è protetto dall'uso non autorizzato intenzionale o non intenzionale da codice mobile parzialmente attendibile senza ulteriori interventi da parte dello sviluppatore.

Prendere in considerazione l'abilitazione esplicita dell'uso da parte di codice parzialmente attendibile per i seguenti tipi di codice:

  • Codice che sia stato attentamente testato per rilevare eventuali vulnerabilità della sicurezza e sia compatibile con le istruzioni riportate in Indicazioni per la generazione di codice protetto.

  • Librerie di codice con nome sicuro create specificamente per situazioni di attendibilità parziale.

  • Componenti con attendibilità parziale o totale firmati con un nome sicuro che vengono chiamati da codice mobile scaricato da Internet.

NotaNota

Alcune classi nella libreria di classi di .NET Framework non dispongono dell'attributo AllowPartiallyTrustedCallersAttribute e non possono essere chiamate da codice parzialmente attendibile.Per un elenco delle classi che è possibile chiamare da codice parzialmente attendibile, vedere Assembly .NET Framework contrassegnati da AllowPartiallyTrustedCallersAttribute.

Vedere anche

Concetti

Sicurezza dall'accesso di codice

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2010

Lievi aggiornamenti al contenuto.

Correzione di bug nel contenuto.