Utilizzo di librerie da codice parzialmente attendibile

Aggiornamento: novembre 2007

Alle applicazioni che ricevono attendibilità inferiore a quella totale dal sistema di protezione dall'accesso di codice runtime non è consentito di chiamare librerie gestite condivise a meno che l'autore della libreria non conceda specificamente questa autorizzazione tramite la classe 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 dalle aree Intranet locale o Internet è parzialmente attendibile. Se non si prevede che il codice sia 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 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 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 disattivare 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 dai criteri del computer locale.

  • In fase di programmazione non è possibile impostare la chiamata di una libreria che non disponga dell'attributo AllowPartiallyTrustedCallersAttribute da codice parzialmente attendibile. Se un'applicazione non riceve l'attendibilità totale per impostazione predefinita, l'amministratore può modificare i criteri di sicurezza e concedere l'attendibilità totale all'applicazione prima che venga chiamata una libreria di questo tipo.

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 o dell'amministratore.

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 protezione 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 o dalla rete Intranet locale. Questi componenti sono interessati in quanto nei criteri di sicurezza predefiniti il codice mobile riceve attendibilità parziale.

  • Se si modificano i criteri predefiniti, il codice cui i criteri di sicurezza garantiscono un'attendibilità inferiore a quella completa.

    Nota:

    Alcune classi fornite 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

Altre risorse

Protezione dall'accesso di codice