<elemento > legacyImpersonationPolicy<legacyImpersonationPolicy> Element

Specifica che l'identità di Windows non passa attraverso punti asincroni, indipendentemente dalle impostazioni di flusso per il contesto di esecuzione nel thread corrente.Specifies that the Windows identity does not flow across asynchronous points, regardless of the flow settings for the execution context on the current thread.

<configuration> <configuration>
    <runtime >   <runtime>
     <legacyImpersonationPolicy >    <legacyImpersonationPolicy>

SintassiSyntax

<legacyImpersonationPolicy    
   enabled="true|false"/>  

Attributi ed elementiAttributes and Elements

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.The following sections describe attributes, child elements, and parent elements.

AttributiAttributes

AttributoAttribute DescrizioneDescription
enabled Attributo obbligatorio.Required attribute.

Specifica che il WindowsIdentity non viene propagata tra punti asincroni, indipendentemente dalle impostazioni del flusso ExecutionContext sul thread corrente.Specifies that the WindowsIdentity does not flow across asynchronous points, regardless of the ExecutionContext flow settings on the current thread.

Attributo enabledenabled Attribute

ValueValue DescrizioneDescription
false WindowsIdentity scorre tra punti asincroni a seconda delle impostazioni del flusso di ExecutionContext per il thread corrente.WindowsIdentity flows across asynchronous points depending upon the ExecutionContext flow settings for the current thread. Questa è l'impostazione predefinita.This is the default.
true WindowsIdentity non viene propagata tra punti asincroni, indipendentemente dalle impostazioni del flusso ExecutionContext sul thread corrente.WindowsIdentity does not flow across asynchronous points, regardless of the ExecutionContext flow settings on the current thread.

Elementi figlioChild Elements

Nessuna.None.

Elementi padreParent Elements

ElementoElement DescrizioneDescription
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contiene informazioni sull'associazione degli assembly e sull'operazione di Garbage Collection.Contains information about assembly binding and garbage collection.

NoteRemarks

Nelle versioni .NET Framework 1,0 e 1,1, il WindowsIdentity non viene propagata tra i punti asincroni definiti dall'utente.In the .NET Framework versions 1.0 and 1.1, the WindowsIdentity does not flow across any user-defined asynchronous points. A partire da .NET Framework versione 2,0, è presente un oggetto ExecutionContext che contiene informazioni sul thread attualmente in esecuzione e viene trasmesso tra punti asincroni all'interno di un dominio dell'applicazione.Starting with the .NET Framework version 2.0, there is an ExecutionContext object that contains information about the currently executing thread, and it flows across asynchronous points within an application domain. Il WindowsIdentity è incluso in questo contesto di esecuzione e, di conseguenza, fluisce anche tra i punti asincroni, il che significa che se esiste un contesto di rappresentazione, viene trasmesso anche il flusso.The WindowsIdentity is included in this execution context and therefore also flows across the asynchronous points, which means that if an impersonation context exists, it will flow as well.

A partire da .NET Framework 2,0, è possibile usare l'elemento <legacyImpersonationPolicy> per specificare che WindowsIdentity non scorre tra punti asincroni.Starting with the .NET Framework 2.0, you can use the <legacyImpersonationPolicy> element to specify that WindowsIdentity does not flow across asynchronous points.

Nota

Il Common Language Runtime (CLR) rileva le operazioni di rappresentazione eseguite utilizzando solo codice gestito, non la rappresentazione eseguita all'esterno del codice gestito, ad esempio tramite platform invoke al codice non gestito o tramite chiamate dirette alle funzioni Win32.The common language runtime (CLR) is aware of impersonation operations performed using only managed code, not of impersonation performed outside of managed code, such as through platform invoke to unmanaged code or through direct calls to Win32 functions. Solo gli oggetti WindowsIdentity gestiti possono fluire tra punti asincroni, a meno che l'elemento alwaysFlowImpersonationPolicy non sia stato impostato su true (<alwaysFlowImpersonationPolicy enabled="true"/>).Only managed WindowsIdentity objects can flow across asynchronous points, unless the alwaysFlowImpersonationPolicy element has been set to true (<alwaysFlowImpersonationPolicy enabled="true"/>). Se si imposta l'elemento alwaysFlowImpersonationPolicy su true, viene specificato che l'identità di Windows scorre sempre tra punti asincroni, indipendentemente dal modo in cui è stata eseguita la rappresentazione.Setting the alwaysFlowImpersonationPolicy element to true specifies that the Windows identity always flows across asynchronous points, regardless of how impersonation was performed. Per ulteriori informazioni sulla propagazione della rappresentazione non gestita tra punti asincroni, vedere <elemento alwaysFlowImpersonationPolicy >.For more information on flowing unmanaged impersonation across asynchronous points, see <alwaysFlowImpersonationPolicy> Element.

È possibile modificare questo comportamento predefinito in altri due modi:You can alter this default behavior in two other ways:

  1. Nel codice gestito in base al thread.In managed code on a per-thread basis.

    È possibile disattivare il flusso in base ai singoli thread modificando le impostazioni ExecutionContext e SecurityContext usando il metodo ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity o SecurityContext.SuppressFlow.You can suppress the flow on a per-thread basis by modifying the ExecutionContext and SecurityContext settings by using the ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity or SecurityContext.SuppressFlow method.

  2. Nella chiamata all'interfaccia host non gestita per caricare il Common Language Runtime (CLR).In the call to the unmanaged hosting interface to load the common language runtime (CLR).

    Se per il caricamento di CLR viene utilizzata un'interfaccia di hosting non gestita, anziché un semplice eseguibile gestito, è possibile specificare un flag speciale nella chiamata alla funzione funzione CorBindToRuntimeEx .If an unmanaged hosting interface (instead of a simple managed executable) is used to load the CLR, you can specify a special flag in the call to the CorBindToRuntimeEx Function function. Per abilitare la modalità di compatibilità per l'intero processo, impostare il parametro flags per la funzione CorBindToRuntimeEx su STARTUP_LEGACY_IMPERSONATION.To enable the compatibility mode for the entire process, set the flags parameter for CorBindToRuntimeEx Function to STARTUP_LEGACY_IMPERSONATION.

Per ulteriori informazioni, vedere l' elemento<alwaysFlowImpersonationPolicy >.For more information, see the <alwaysFlowImpersonationPolicy> Element.

File di configurazioneConfiguration File

In un'applicazione .NET Framework, questo elemento può essere utilizzato solo nel file di configurazione dell'applicazione.In a .NET Framework application, this element can be used only in the application configuration file.

Per un'applicazione ASP.NET, il flusso di rappresentazione può essere configurato nel file Aspnet. config presente nella cartella <Windows > directory \Microsoft.NET\Framework\vx.x.xxxx.For an ASP.NET application, the impersonation flow can be configured in the aspnet.config file found in the <Windows Folder>\Microsoft.NET\Framework\vx.x.xxxx directory.

Per impostazione predefinita, ASP.NET Disabilita il flusso di rappresentazione nel file Aspnet. config usando le impostazioni di configurazione seguenti:ASP.NET by default disables the impersonation flow in the aspnet.config file by using the following configuration settings:

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

In ASP.NET, se invece si desidera consentire il flusso di rappresentazione, è necessario utilizzare in modo esplicito le impostazioni di configurazione seguenti:In ASP.NET, if you want to allow the flow of impersonation instead, you must explicitly use the following configuration settings:

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

EsempioExample

Nell'esempio seguente viene illustrato come specificare il comportamento legacy che non fluisce sull'identità di Windows tra punti asincroni.The following example shows how to specify the legacy behavior that does not flow the Windows identity across asynchronous points.

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

Vedere ancheSee also