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.
Specifica che l'identità di Windows non passa attraverso punti asincroni, indipendentemente dalle impostazioni del flusso per il contesto di esecuzione nel thread corrente.
<
>
di configurazione
>
runtime di<
<legacyImpersonationPolicy>
Sintassi
<legacyImpersonationPolicy
enabled="true|false"/>
Attributi ed elementi
Le sezioni seguenti descrivono attributi, elementi figlio ed elementi padre.
Attributi
Attributo | Descrizione |
---|---|
enabled |
Attributo obbligatorio. Specifica che la WindowsIdentity non viene propagata tra punti asincroni, indipendentemente dalle impostazioni del flusso ExecutionContext nel thread corrente. |
Attributo abilitato
Valore | Descrizione |
---|---|
false |
WindowsIdentity i flussi tra punti asincroni a seconda delle impostazioni del flusso ExecutionContext per il thread corrente. Si tratta dell'impostazione predefinita. |
true |
WindowsIdentity non passa attraverso punti asincroni, indipendentemente dalle impostazioni del flusso ExecutionContext nel thread corrente. |
Elementi figlio
Nessuno.
Elementi padre
Elemento | Descrizione |
---|---|
configuration |
Elemento radice in ogni file di configurazione usato dalle applicazioni Common Language Runtime e .NET Framework. |
runtime |
Contiene informazioni sull'associazione di assembly e la Garbage Collection. |
Osservazioni
In .NET Framework versioni 1.0 e 1.1, il WindowsIdentity non viene propagato tra punti asincroni definiti dall'utente. A partire da .NET Framework versione 2.0, è presente un oggetto ExecutionContext che contiene informazioni sul thread attualmente in esecuzione e passa attraverso punti asincroni all'interno di un dominio applicazione. Il WindowsIdentity è incluso in questo contesto di esecuzione e quindi scorre anche tra i punti asincroni, il che significa che, se esiste un contesto di rappresentazione, scorrerà anche.
A partire da .NET Framework 2.0, è possibile usare l'elemento <legacyImpersonationPolicy>
per specificare che WindowsIdentity non scorre tra punti asincroni.
Nota
Common Language Runtime (CLR) è a conoscenza delle operazioni di rappresentazione eseguite usando solo codice gestito, non di rappresentazione eseguita all'esterno del codice gestito, ad esempio tramite platform invoke a codice non gestito o tramite chiamate dirette alle funzioni Win32. Solo gli oggetti WindowsIdentity gestiti possono scorrere tra punti asincroni, a meno che l'elemento alwaysFlowImpersonationPolicy
sia stato impostato su true (<alwaysFlowImpersonationPolicy enabled="true"/>
). L'impostazione dell'elemento alwaysFlowImpersonationPolicy
su true specifica che l'identità di Windows scorre sempre tra i punti asincroni, indipendentemente dalla modalità di esecuzione della rappresentazione. Per altre informazioni sul flusso della rappresentazione non gestita tra i punti asincroni, vedere <alwaysFlowImpersonationPolicy> Element.
È possibile modificare questo comportamento predefinito in altri due modi:
Nel codice gestito per thread.
È possibile eliminare il flusso in base al thread modificando le impostazioni di ExecutionContext e SecurityContext usando il metodo ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity o SecurityContext.SuppressFlow.
Nella chiamata all'interfaccia di hosting non gestita per caricare Common Language Runtime (CLR).
Se per caricare CLR viene usata un'interfaccia di hosting non gestita anziché un semplice eseguibile gestito, è possibile specificare un flag speciale nella chiamata alla funzione Funzione CorBindToRuntimeEx. Per abilitare la modalità di compatibilità per l'intero processo, impostare il parametro
flags
per Funzione CorBindToRuntimeEx su STARTUP_LEGACY_IMPERSONATION.
Per altre informazioni, vedere l'elemento <alwaysFlowImpersonationPolicy>.
File di configurazione
In un'applicazione .NET Framework questo elemento può essere usato solo nel file di configurazione dell'applicazione.
Per un'applicazione ASP.NET, il flusso di rappresentazione può essere configurato nel file aspnet.config disponibile nella directory <cartella di Windows>\Microsoft.NET\Framework\vx.x.xxxx.
ASP.NET per impostazione predefinita disabilita il flusso di rappresentazione nel file aspnet.config usando le impostazioni di configurazione seguenti:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
</runtime>
</configuration>
In ASP.NET, se si vuole consentire il flusso di rappresentazione, è necessario usare in modo esplicito le impostazioni di configurazione seguenti:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Esempio
Nell'esempio seguente viene illustrato come specificare il comportamento legacy che non scorre l'identità di Windows tra punti asincroni.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Vedere anche
- Configurare le app usando i file di configurazione
- schema delle impostazioni di runtime
- schema del file di configurazione
- <elemento alwaysFlowImpersonationPolicy>