Elemento <legacyImpersonationPolicy>

Aggiornamento: novembre 2007

Specifica che il flusso dell'identità Windows non passa attraverso punti asincroni, indipendentemente dalle impostazioni di flusso per il contesto di esecuzione nel thread corrente.

Elemento <Configuration>
  Elemento <runtime>
    Elemento <legacyImpersonationPolicy>

<legacyImpersonationPolicy  
   enabled="true|false"/>

Attributi ed elementi

Nelle sezioni riportate di seguito vengono illustrati attributi, elementi figlio e padre.

Attributi

Attributo

Descrizione

enabled

Attributo obbligatorio.

Specifica che WindowsIdentity non passa attraverso punti asincroni, indipendentemente dalle impostazioni di flusso di ExecutionContext nel thread corrente.

Attributo enabled

Valore

Descrizione

false

WindowsIdentity passa attraverso punti asincroni a seconda delle impostazioni di flusso di ExecutionContext per il thread corrente. Questa è l'impostazione predefinita.

true

WindowsIdentity non passa attraverso punti asincroni, indipendentemente dalle impostazioni di flusso di ExecutionContext nel thread corrente.

Elementi figlio

Nessuno.

Elementi padre

Elemento

Descrizione

configuration

È l'elemento di primo livello in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni .NET Framework.

runtime

Contiene le informazioni sull'associazione degli assembly e la Garbage Collection.

Note

In .NET Framework versione 1.0 e 1.1 WindowsIdentity non passa attraverso punti asincroni definiti dall'utente. In .NET Framework versione 2.0 è disponibile un oggetto ExecutionContext contenente informazioni sul thread attualmente in esecuzione e che consente il passaggio del flusso attraverso punti asincroni all'interno di un dominio applicazione. Anche l'oggetto WindowsIdentity è incluso nel flusso delle informazioni che passano attraverso i punti asincroni, pertanto il flusso includerà anche un eventuale contesto di rappresentazione esistente. Questo elemento viene utilizzato per specificare che l'oggetto WindowsIdentity non passa attraverso punti asincroni.

Nota

Common Language Runtime (CLR) supporta le operazioni di rappresentazione eseguite utilizzando solo codice gestito e non quelle eseguite al di fuori del codice gestito, ad esempio le operazioni tramite pInvoke al codice non gestito o tramite chiamate dirette alle funzioni Win32. Solo gli oggetti WindowsIdentity gestiti possono attraversare i punti asincroni, a meno che l'elemento alwaysFlowImpersonationPolicy non sia stato impostato su true (<alwaysFlowImpersonationPolicy enabled="true"/>). L'impostazione dell'elemento alwaysFlowImpersonationPolicy su true specifica che il flusso dell'identità Windows passa sempre attraverso punti asincroni, indipendentemente dal modo in cui è stata ottenuta la rappresentazione. Per ulteriori informazioni sul flusso della rappresentazione non gestita attraverso punti asincroni, vedere Elemento <alwaysFlowImpersonationPolicy>.

L'elemento può essere utilizzato esclusivamente nel file di configurazione dell'applicazione.

È possibile modificare questo comportamento predefinito in due diversi modi:

  1. Nel codice gestito in base ai singoli thread.

    Per sopprimere il flusso in base al singolo thread, modificare le impostazioni ExecutionContext e SecurityContext utilizzando il metodo ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity o SecurityContext.SuppressFlow.

  2. Nella chiamata all'interfaccia di hosting non gestita per il caricamento di CLR (Common Language Runtime).

    Se per il caricamento di CLR viene utilizzata un'interfaccia di hosting non gestita, anziché un semplice eseguibile gestito, è possibile specificare uno speciale flag nella chiamata alla funzione Funzione CorBindToRuntimeEx. Per attivare la modalità di compatibilità per l'intero processo, impostare su STARTUP_LEGACY_IMPERSONATION il parametro flags per Funzione CorBindToRuntimeEx.

Esempio

Nell'esempio riportato di seguito viene illustrato come specificare il comportamento preesistente che non consente il passaggio del flusso dell'identità Windows attraverso punti asincroni.

<configuration>
   <runtime>
      <legacyImpersonationPolicy enabled="true"/>
   </runtime>
</configuration>

Vedere anche

Riferimenti

Schema delle impostazioni dell'ambiente di esecuzione

Altre risorse

Schema dei file di configurazione per .NET Framework