Dela via


<legacyImpersonationPolicy> Element

Anger att Windows-identiteten inte flödar över asynkrona punkter, oavsett flödesinställningarna för körningskontexten i den aktuella tråden.

<konfiguration>
   <körning>
     <legacyImpersonationPolicy>

Syntax

<legacyImpersonationPolicy
   enabled="true|false"/>  

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
enabled Obligatoriskt attribut.

Anger att WindowsIdentity inte flödar över asynkrona punkter, oavsett ExecutionContext flödesinställningar i den aktuella tråden.

aktiverat attribut

Värde Beskrivning
false WindowsIdentity flödar över asynkrona punkter beroende på ExecutionContext flödesinställningarna för den aktuella tråden. Det här är standardinställningen.
true WindowsIdentity flödar inte över asynkrona punkter, oavsett ExecutionContext flödesinställningar i den aktuella tråden.

Underordnade element

Ingen.

Överordnade element

Element Beskrivning
configuration Rotelementet i varje konfigurationsfil som används av vanliga språkkörnings- och .NET Framework-program.
runtime Innehåller information om sammansättningsbindning och skräpinsamling.

Anmärkningar

I .NET Framework-versionerna 1.0 och 1.1 flödar WindowsIdentity inte över några användardefinierade asynkrona punkter. Från och med .NET Framework version 2.0 finns det ett ExecutionContext objekt som innehåller information om den tråd som körs just nu och som flödar över asynkrona punkter i en programdomän. WindowsIdentity ingår i den här körningskontexten och flödar därför även över asynkrona punkter, vilket innebär att om det finns en personifieringskontext flödar den också.

Från och med .NET Framework 2.0 kan du använda elementet <legacyImpersonationPolicy> för att ange att WindowsIdentity inte flödar över asynkrona punkter.

Not

CLR (Common Language Runtime) är medveten om personifieringsåtgärder som utförs med endast hanterad kod, inte personifiering som utförs utanför hanterad kod, till exempel via plattformsanrop till ohanterad kod eller via direkta anrop till Win32-funktioner. Endast hanterade WindowsIdentity objekt kan flöda över asynkrona punkter, såvida inte alwaysFlowImpersonationPolicy-elementet har angetts till true (<alwaysFlowImpersonationPolicy enabled="true"/>). Om alwaysFlowImpersonationPolicy-elementet anges till true anges att Windows-identiteten alltid flödar över asynkrona punkter, oavsett hur personifiering utfördes. Mer information om hur du flödar ohanterad personifiering över asynkrona punkter finns i <alwaysFlowImpersonationPolicy> Element.

Du kan ändra standardbeteendet på två andra sätt:

  1. I hanterad kod per tråd.

    Du kan utelämna flödet per tråd genom att ändra inställningarna för ExecutionContext och SecurityContext med hjälp av metoden ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity eller SecurityContext.SuppressFlow.

  2. I anropet till det ohanterade värdgränssnittet för att läsa in CLR (Common Language Runtime).

    Om ett ohanterat värdgränssnitt (i stället för en enkel hanterad körbar fil) används för att läsa in CLR kan du ange en särskild flagga i anropet till funktionen CorBindToRuntimeEx. Om du vill aktivera kompatibilitetsläget för hela processen anger du parametern flags för CorBindToRuntimeEx-funktion till STARTUP_LEGACY_IMPERSONATION.

Mer information finns i <alwaysFlowImpersonationPolicy> Element.

Konfigurationsfil

I ett .NET Framework-program kan det här elementet endast användas i programkonfigurationsfilen.

För ett ASP.NET program kan personifieringsflödet konfigureras i aspnet.config filen som finns i katalogen <Windows-mapp>\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET inaktiverar som standard personifieringsflödet i aspnet.config-filen med hjälp av följande konfigurationsinställningar:

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

Om du i ASP.NET vill tillåta flödet av personifiering i stället måste du uttryckligen använda följande konfigurationsinställningar:

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

Exempel

I följande exempel visas hur du anger det äldre beteende som inte flödar Windows-identiteten över asynkrona punkter.

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

Se även