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

Utilizzo di SuppressUnmanagedCodeSecurityAttribute

Un aspetto delle prestazioni è quello relativo all'asserzione e alla chiamata di codice non gestito. Per ciascuna chiamata di questo tipo, il sistema di sicurezza esige automaticamente l'autorizzazione per codice non gestito, provocando di conseguenza un percorso stack per ciascuna occorrenza. Se viene eseguita l'asserzione e viene chiamato immediatamente codice non gestito, il percorso stack può essere inutile, in quanto consiste nell'asserzione e nella chiamata al codice non gestito.

Un attributo personalizzato denominato SuppressUnmanagedCodeSecurityAttribute può essere applicato ai punti di ingresso del codice non gestito per disabilitare il normale controllo di sicurezza per cui si richiede l'oggetto SecurityPermission con il flag UnmanagedCode specificato. Prestare sempre estrema attenzione durante l'esecuzione di questa operazione, poiché determina un punto di libero accesso al codice non gestito senza alcun controllo di sicurezza in fase di esecuzione. Anche se si applica l'attributo SuppressUnmanagedCodeSecurityAttribute, con la compilazione JIT viene eseguito, seppure una sola volta, un controllo di sicurezza per garantire che il chiamante immediato disponga dell'autorizzazione per chiamare codice non gestito.

Se si utilizza l'attributo SuppressUnmanagedCodeSecurityAttribute, verificare i seguenti punti:

  • Rendere interno il punto di ingresso del codice non gestito o, in alternativa, renderlo inaccessibile dall'esterno del codice.

  • Ogni chiamata nel codice non gestito rappresenta una potenziale vulnerabilità nella sicurezza. Accertarsi che il codice non rappresenti un punto di ingresso per le chiamate indirette da parte di codice dannoso al codice non gestito e non consenta di aggirare il controllo di sicurezza. Esigere autorizzazioni, se necessario.

  • Utilizzare una convenzione di denominazione per identificare in modo esplicito la creazione di un percorso pericoloso nel codice non gestito, come descritto in Convenzione di denominazione per i metodi di codice non gestito.

Mostra: