Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Delegati

La sicurezza dei delegati varia a seconda delle versioni di .NET Framework. In questa sezione vengono descritti i diversi comportamenti dei delegati e sono riportate alcune considerazioni correlate riguardanti la sicurezza.

Nelle versioni 1.0 e 1.1 di .NET Framework vengono eseguite le seguenti azioni di sicurezza rispetto a un creatore e a un chiamante di delegato.

  • Quando viene creato un delegato, sul relativo metodo di destinazione vengono specificate pretese di collegamento di sicurezza rispetto al set di autorizzazioni del creatore. Se tali pretese non sono soddisfatte, verrà generata un'eccezione SecurityException.

  • Quando il delegato viene richiamato, sul chiamante vengono specificate le eventuali pretese di sicurezza esistenti.

Ogni volta che il codice accetta Delegate da parte di codice meno attendibile da cui viene eseguita la chiamata, accertarsi che non si attivi l'acquisizione di ulteriori autorizzazioni da parte del codice meno attendibile. Se si accetta un delegato e lo si utilizza in un momento successivo, il codice da cui viene creato il delegato non è nello stack di chiamate e le relative autorizzazioni non saranno verificate se il codice all'interno o per conto del delegato tenta un'operazione protetta. Se il proprio codice e il codice del chiamante dispongono di privilegi superiori a quelli del creatore, quest'ultimo può orchestrare il percorso della chiamata senza far parte dello stack di chiamate.

Diversamente da quanto avviene nelle versioni precedenti, in .NET Framework 2.0 vengono eseguite azioni di sicurezza rispetto al creatore del delegato quando il delegato viene creato e chiamato.

  • Quando viene creato un delegato, sul relativo metodo di destinazione vengono specificate pretese di collegamento di sicurezza rispetto al set di autorizzazioni del creatore. Se tali pretese non sono soddisfatte, verrà generata un'eccezione SecurityException.

  • Il set di autorizzazioni del creatore del delegato viene acquisito anche durante la creazione del delegato e viene archiviato con il delegato.

  • Quando il delegato viene richiamato, viene innanzitutto valutato il set di autorizzazioni del creatore rispetto alle eventuali pretese nel contesto corrente, nel caso in cui il creatore e il chiamante del delegato appartengano ad assembly differenti, e successivamente vengono specificate le eventuali pretese di sicurezza sul chiamante del delegato.

Mostra: