<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>
<Runtime>
<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ällningarna i den aktuella tråden. |
aktiverat attribut
Värde | Beskrivning |
---|---|
false |
WindowsIdentity flödar över asynkrona punkter beroende på flödesinställningarna ExecutionContext för den aktuella tråden. Det här är standardinställningen. |
true |
WindowsIdentity flödar inte över asynkrona punkter, oavsett flödesinställningarna ExecutionContext i den aktuella tråden. |
Underordnade element
Inga.
Överordnade element
Element | Beskrivning |
---|---|
configuration |
Rotelementet i varje konfigurationsfil som används av common language runtime och .NET Framework program. |
runtime |
Innehåller information om sammansättningsbindning och skräpinsamling. |
Kommentarer
I .NET Framework versionerna 1.0 och 1.1 WindowsIdentity flödar 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 de asynkrona punkterna, 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 det inte flödar över asynkrona punkter.
Anteckning
Common Language Runtime (CLR) ä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 elementet alwaysFlowImpersonationPolicy
har angetts till sant (<alwaysFlowImpersonationPolicy enabled="true"/>
). Om elementet alwaysFlowImpersonationPolicy
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:
I hanterad kod per tråd.
Du kan ignorera flödet per tråd genom att ExecutionContext ändra inställningarna och SecurityContext med hjälp ExecutionContext.SuppressFlowSecurityContext.SuppressFlowWindowsIdentity av - eller SecurityContext.SuppressFlow -metoden.
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 Funktionen CorBindToRuntimeEx till STARTUP_LEGACY_IMPERSONATION.
Mer information finns i <alwaysFlowImpersonationPolicy-elementet>.
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 Folder>\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>