<Elemento legacyImpersonationPolicy>
Specifica che l'identità di Windows non passa attraverso punti asincroni, indipendentemente dalle impostazioni di flusso per il contesto di esecuzione nel thread corrente.
<Configurazione>
<Runtime>
<legacyImpersonationPolicy>
Sintassi
<legacyImpersonationPolicy
enabled="true|false"/>
Attributi ed elementi
Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.
Attributi
Attributo | Descrizione |
---|---|
enabled |
Attributo obbligatorio. Specifica che il WindowsIdentity flusso non viene eseguito tra punti asincroni, indipendentemente ExecutionContext dalle impostazioni del flusso nel thread corrente. |
Attributo enabled
Valore | Descrizione |
---|---|
false |
WindowsIdentity passa attraverso punti asincroni a seconda delle ExecutionContext impostazioni del flusso per il thread corrente. Questo è il valore predefinito. |
true |
WindowsIdentity non scorre in punti asincroni, indipendentemente dalle impostazioni del ExecutionContext flusso nel thread corrente. |
Elementi figlio
Nessuno.
Elementi padre
Elemento | Descrizione |
---|---|
configuration |
Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework. |
runtime |
Contiene informazioni sull'associazione degli assembly e sull'operazione di Garbage Collection. |
Commenti
In .NET Framework versioni 1.0 e 1.1, l'oggetto WindowsIdentity non scorre tra punti asincroni definiti dall'utente. A partire da .NET Framework versione 2.0, esiste un ExecutionContext oggetto che contiene informazioni sul thread attualmente in esecuzione e scorre tra punti asincroni all'interno di un dominio applicazione. L'oggetto 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, verrà inoltre eseguito il flusso.
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) è consapevole delle operazioni di rappresentazione eseguite usando solo codice gestito, non di rappresentazione eseguita all'esterno del codice gestito, ad esempio tramite l'richiamare alla piattaforma per il codice non gestito o tramite chiamate dirette alle funzioni Win32. Solo gli oggetti gestiti possono scorrere in punti asincroni WindowsIdentity , a meno che l'elemento alwaysFlowImpersonationPolicy
non sia stato impostato su true (<alwaysFlowImpersonationPolicy enabled="true"/>
). L'impostazione dell'elemento su true specifica che l'identità alwaysFlowImpersonationPolicy
di Windows scorre sempre in punti asincroni, indipendentemente dalla modalità di rappresentazione eseguita. Per altre informazioni sul flusso della rappresentazione non gestita tra punti asincroni, vedere <alwaysFlowImpersonationPolicy> Element.
È possibile modificare questo comportamento predefinito in due modi diversi:
Nel codice gestito in base al thread.
È possibile eliminare il flusso in base a thread modificando le impostazioni e SecurityContext usando il ExecutionContext.SuppressFlowmetodo o SecurityContext.SuppressFlowWindowsIdentitySecurityContext.SuppressFlow .ExecutionContext
Nella chiamata all'interfaccia di hosting non gestita per caricare Common Language Runtime (CLR).
Se 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
flags
parametro per la 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 trovato nella <directory Windows Folder>\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 in punti asincroni.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>