Delen via


<het element legacyImpersonationPolicy>

Hiermee geeft u op dat de Windows-identiteit niet over asynchrone punten stroomt, ongeacht de stroominstellingen voor de uitvoeringscontext op de huidige thread.

<configuratie>
  <Runtime>
    <legacyImpersonationPolicy>

Syntax

<legacyImpersonationPolicy
   enabled="true|false"/>  

Kenmerken en elementen

In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven.

Kenmerken

Kenmerk Beschrijving
enabled Vereist kenmerk.

Hiermee geeft u op dat de WindowsIdentity niet over asynchrone punten stroomt, ongeacht de ExecutionContext stroominstellingen op de huidige thread.

ingeschakeld kenmerk

Waarde Beschrijving
false WindowsIdentity stromen over asynchrone punten, afhankelijk van de ExecutionContext stroominstellingen voor de huidige thread. Dit is de standaardinstelling.
true WindowsIdentity loopt niet over asynchrone punten, ongeacht de ExecutionContext stroominstellingen op de huidige thread.

Onderliggende elementen

Geen.

Bovenliggende elementen

Element Beschrijving
configuration Het hoofdelement in elk configuratiebestand dat wordt gebruikt door de common language runtime en .NET Framework toepassingen.
runtime Bevat informatie over assemblagebinding en garbagecollection.

Opmerkingen

In de .NET Framework versies 1.0 en 1.1 stroomt de niet over door de WindowsIdentity gebruiker gedefinieerde asynchrone punten. Vanaf .NET Framework versie 2.0 is er een ExecutionContext object dat informatie bevat over de thread die momenteel wordt uitgevoerd, en dat over asynchrone punten binnen een toepassingsdomein stroomt. De WindowsIdentity is opgenomen in deze uitvoeringscontext en loopt daarom ook over de asynchrone punten, wat betekent dat als er een imitatiecontext bestaat, deze ook zal stromen.

Vanaf .NET Framework 2.0 kunt u het <legacyImpersonationPolicy> element gebruiken om op te geven dat WindowsIdentity niet over asynchrone punten stroomt.

Notitie

De Common Language Runtime (CLR) is op de hoogte van imitatiebewerkingen die alleen worden uitgevoerd met behulp van beheerde code, niet van imitatie die buiten beheerde code wordt uitgevoerd, zoals via platform-aanroep naar niet-beheerde code of via directe aanroepen naar Win32-functies. Alleen beheerde WindowsIdentity objecten kunnen over asynchrone punten stromen, tenzij het alwaysFlowImpersonationPolicy element is ingesteld op true (<alwaysFlowImpersonationPolicy enabled="true"/>). Als u het alwaysFlowImpersonationPolicy element instelt op true, wordt aangegeven dat de Windows-identiteit altijd over asynchrone punten loopt, ongeacht hoe imitatie is uitgevoerd. Zie het element alwaysFlowImpersonationPolicy> voor meer informatie over het stromen van onbeheerde imitatie tussen asynchrone punten<.

U kunt dit standaardgedrag op twee andere manieren wijzigen:

  1. In beheerde code per thread.

    U kunt de stroom per thread onderdrukken door de ExecutionContext instellingen en SecurityContext te wijzigen met behulp van de ExecutionContext.SuppressFlowmethode , SecurityContext.SuppressFlowWindowsIdentity of SecurityContext.SuppressFlow .

  2. In de aanroep van de niet-beheerde hostinginterface om de Common Language Runtime (CLR) te laden.

    Als een onbeheerde hostinginterface (in plaats van een eenvoudig beheerd uitvoerbaar bestand) wordt gebruikt om de CLR te laden, kunt u een speciale vlag opgeven in de aanroep van de functie CorBindToRuntimeEx . Als u de compatibiliteitsmodus voor het hele proces wilt inschakelen, stelt u de parameter voor de flagsfunctie CorBindToRuntimeEx in op STARTUP_LEGACY_IMPERSONATION.

Zie het <element alwaysFlowImpersonationPolicy> voor meer informatie.

Configuratiebestand

In een .NET Framework toepassing kan dit element alleen worden gebruikt in het configuratiebestand van de toepassing.

Voor een ASP.NET toepassing kan de imitatiestroom worden geconfigureerd in het aspnet.config-bestand in de <map Windows-map>\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET schakelt standaard de imitatiestroom in het aspnet.config-bestand uit met behulp van de volgende configuratie-instellingen:

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

Als u in ASP.NET de imitatiestroom wilt toestaan, moet u expliciet de volgende configuratie-instellingen gebruiken:

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

Voorbeeld

In het volgende voorbeeld ziet u hoe u het verouderde gedrag opgeeft dat de Windows-identiteit niet over asynchrone punten stroomt.

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

Zie ook