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 classi wrapper gestite

È necessario che la maggior parte delle applicazione e dei componenti, fatta eccezione per le librerie protette, non chiami direttamente codice non gestito. Le ragioni sono molteplici. Se il codice chiama direttamente codice non gestito, in molti casi non ne sarà autorizzata l'esecuzione, poiché per chiamare codice nativo è necessario che il codice disponga di un livello di attendibilità elevato. Se i criteri vengono modificati in modo da consentire l'esecuzione di tale applicazione, potrebbe risultarne seriamente indebolita la sicurezza del sistema e l'applicazione sarebbe libera di eseguire quasi ogni tipo di operazione.

È inoltre probabile che il codice che dispone dell'autorizzazione per l'accesso a codice sia in grado di effettuare qualsiasi operazione chiamando un'API non gestita. Non è necessario, ad esempio, che un codice autorizzato a chiamare codice non gestito disponga di un oggetto FileIOPermission per accedere a un file. Sarà sufficiente che effettui la chiama diretta a un'API di file non gestita (Win32), ignorando l'API di file gestita che richiede FileIOPermission. Se il codice gestito è autorizzato a chiamare codice non gestito e lo chiama direttamente, il sistema di sicurezza non sarà in grado di imporre in maniera affidabile restrizioni di sicurezza, dal momento che non è possibile imporre tali restrizioni su codice non gestito.

Se si desidera che l'applicazione esegua un'operazione che richiede l'accesso a codice non gestito, sarà necessario utilizzare, se disponibile, una classe gestita attendibile che esegua il wrapping della funzionalità richiesta. Non creare autonomamente una classe wrapper se ne esiste già una in una libreria di classi protetta. La classe wrapper, a cui è necessario concedere un elevato livello di attendibilità perché le sia consentito chiamare codice non gestito, impone ai chiamanti il possesso delle opportune autorizzazioni. Se si utilizza una classe wrapper, è necessario che il codice richieda e ottenga esclusivamente le autorizzazioni da essa pretese.

Mostra: