Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
elemento
Specifica se agli assembly caricati da origini remote deve essere concessa l'attendibilità totale in .NET Framework 4 e versioni successive.
Annotazioni
Se si è stati indirizzati a questo articolo a causa di un messaggio di errore nell'elenco degli errori del progetto di Visual Studio o di un errore di compilazione, vedere Procedura: Usare un assembly dal Web in Visual Studio.
<configurazione>
<Runtime>
<loadFromRemoteSources>
Sintassi
<loadFromRemoteSources
enabled="true|false"/>
Attributi ed elementi
Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.
Attributes
| Attribute | Description |
|---|---|
enabled |
Attributo obbligatorio. Specifica se a un assembly caricato da un'origine remota deve essere concesso l'attendibilità totale. |
attributo abilitato
| Value | Description |
|---|---|
false |
Non concedere l'attendibilità totale alle applicazioni da origini remote. Si tratta dell'impostazione predefinita. |
true |
Concedere attendibilità completa alle applicazioni da origini remote. |
Elementi figlio
Nessuno.
Elementi padre
| Elemento | Description |
|---|---|
configuration |
Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework. |
runtime |
Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione. |
Osservazioni:
In .NET Framework 3.5 e versioni precedenti, se si carica un assembly da una posizione remota, il codice nell'assembly viene eseguito in attendibilità parziale con un set di concessioni che dipende dalla zona da cui viene caricato. Ad esempio, se si carica un assembly da un sito Web, viene caricato nell'area Internet e viene concesso il set di autorizzazioni Internet. In altre parole, viene eseguito in una sandbox Internet.
A partire da .NET Framework 4, i criteri di sicurezza dall'accesso di codice (CAS) sono disabilitati e gli assembly vengono caricati con attendibilità totale. In genere, questo concede l'attendibilità totale agli assembly caricati con il Assembly.LoadFrom metodo precedentemente in modalità sandbox. Per evitare questo problema, la possibilità di eseguire codice negli assembly caricati da un'origine remota è disabilitata per impostazione predefinita. Per impostazione predefinita, se si tenta di caricare un assembly remoto, viene generato un FileLoadException oggetto con un messaggio di eccezione simile al seguente:
System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.
Per caricare l'assembly ed eseguirne il codice, è necessario:
Creare in modo esplicito una sandbox per l'assembly (vedere Procedura: Eseguire codice parzialmente attendibile in una sandbox).
Eseguire il codice dell'assembly con attendibilità totale. A tale scopo, configurare l'elemento
<loadFromRemoteSources>. Consente di specificare che gli assembly eseguiti in attendibilità parziale nelle versioni precedenti di .NET Framework vengono ora eseguiti con attendibilità totale in .NET Framework 4 e versioni successive.
Importante
Se l'assembly non deve essere eseguito con attendibilità totale, non impostare questo elemento di configurazione. Creare invece un ambiente in modalità sandbox AppDomain in cui caricare l'assembly.
L'attributo enabled per l'elemento è effettivo solo quando la sicurezza dell'accesso <loadFromRemoteSources> al codice è disabilitata. Per impostazione predefinita, i criteri CAS sono disabilitati in .NET Framework 4 e versioni successive. Se si imposta su enabledtrue, agli assembly remoti viene concessa l'attendibilità totale.
Se enabled non è impostato su true, viene generata un'eccezione FileLoadException in una delle condizioni seguenti:
Il comportamento di sandboxing del dominio corrente è diverso dal comportamento in .NET Framework 3.5. Questo richiede che i criteri CAS siano disabilitati e che il dominio corrente non sia in modalità sandbox.
L'assembly caricato non proviene dalla
MyComputerzona.
L'impostazione dell'elemento su true impedisce la <loadFromRemoteSources> generazione di questa eccezione. Consente di specificare che non si fa affidamento su Common Language Runtime per sandboxre gli assembly caricati per la sicurezza e che possono essere eseguiti con attendibilità totale.
Note
In .NET Framework 4.5 e versioni successive, gli assembly nelle condivisioni di rete locali (ovvero l'area di sicurezza Intranet locale) vengono eseguiti con attendibilità totale per impostazione predefinita; non è necessario abilitare l'elemento
<loadFromRemoteSources>. Per le aree di sicurezza diverse da Computer locale o Intranet locale, impostare il valore sutrue.Se un'applicazione è stata copiata dal Web, viene contrassegnata da Windows come applicazione Web, anche se risiede nel computer locale. È possibile modificare tale designazione modificandone le proprietà del file oppure è possibile usare l'elemento per concedere l'attendibilità
<loadFromRemoteSources>completa dell'assembly. In alternativa, è possibile usare il UnsafeLoadFrom metodo per caricare un assembly locale contrassegnato dal sistema operativo come caricato dal Web.È possibile ottenere un FileLoadException oggetto in un'applicazione in esecuzione in un'applicazione pc virtuale Windows. Ciò può verificarsi quando si tenta di caricare un file da cartelle collegate nel computer di hosting. Può verificarsi anche quando si tenta di caricare un file da una cartella collegata tramite Servizi Desktop remoto (Servizi terminal). Per evitare l'eccezione, impostare su
enabledtrue.
File di configurazione
Questo elemento viene in genere usato nel file di configurazione dell'applicazione, ma può essere usato in altri file di configurazione a seconda del contesto. Per altre informazioni, vedere l'articolo Uso più implicito dei criteri CAS: loadFromRemoteSources nel blog sulla sicurezza di .NET.
Example
Nell'esempio seguente viene illustrato come concedere l'attendibilità completa agli assembly caricati da origini remote.
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>