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>
  <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:

  1. 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.

  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 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>  

Se även