Sdílet prostřednictvím


<legacyImpersonationPolicy> – element

Určuje, že identita Systému Windows neprotéká přes asynchronní body bez ohledu na nastavení toku pro kontext spuštění v aktuálním vlákně.

<Konfigurace>
  <Runtime>
    <legacyImpersonationPolicy>

Syntax

<legacyImpersonationPolicy
   enabled="true|false"/>  

Atributy a elementy

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
enabled Požadovaný atribut.

Určuje, že WindowsIdentity tok neprotéká přes asynchronní body bez ohledu na ExecutionContext nastavení toku v aktuálním vlákně.

Atribut enabled

Hodnota Popis
false WindowsIdentity toky mezi asynchronními body v závislosti na ExecutionContext nastavení toku pro aktuální vlákno. Tato možnost je výchozí.
true WindowsIdentity neprotéká přes asynchronní body bez ohledu na ExecutionContext nastavení toku v aktuálním vlákně.

Podřízené elementy

Žádné

Nadřazené elementy

Element Popis
configuration Kořenový prvek v každém konfiguračním souboru, který je používán modulem Common Language Runtime (CLR) a aplikacemi rozhraní .NET Framework.
runtime Obsahuje informace o vazbách sestavení a uvolnění paměti.

Poznámky

V rozhraní .NET Framework verze 1.0 a 1.1 WindowsIdentity neprotéká přes žádné asynchronní body definované uživatelem. Počínaje rozhraním .NET Framework verze 2.0 existuje ExecutionContext objekt, který obsahuje informace o aktuálně spuštěných vláknech a tok mezi asynchronními body v rámci domény aplikace. Objekt WindowsIdentity je součástí tohoto kontextu spuštění, a proto také prochází asynchronními body, což znamená, že pokud existuje kontext zosobnění, bude také tok.

Počínaje rozhraním .NET Framework 2.0 můžete pomocí elementu <legacyImpersonationPolicy> určit, že WindowsIdentity nebude tok přes asynchronní body.

Poznámka

Modul CLR (Common Language Runtime) si je vědom operací zosobnění prováděných pouze pomocí spravovaného kódu, nikoli zosobnění prováděného mimo spravovaný kód, například voláním platformy do nespravovaného kódu nebo přímým voláním funkcí Win32. Pouze spravované WindowsIdentity objekty mohou tok přes asynchronní body, pokud alwaysFlowImpersonationPolicy není element nastaven na hodnotu true (<alwaysFlowImpersonationPolicy enabled="true"/>). Nastavení elementu alwaysFlowImpersonationPolicy na hodnotu true určuje, že identita Systému Windows vždy prochází asynchronními body bez ohledu na to, jak bylo zosobnění provedeno. Další informace o toku nespravovaného zosobnění mezi asynchronními body najdete v tématu <elementu alwaysFlowImpersonationPolicy>.

Toto výchozí chování můžete změnit dvěma dalšími způsoby:

  1. Ve spravovaném kódu pro jednotlivá vlákna.

    Tok můžete potlačit pro jednotlivá vlákna úpravou ExecutionContext nastavení a SecurityContext pomocí ExecutionContext.SuppressFlowmetody , SecurityContext.SuppressFlowWindowsIdentity nebo SecurityContext.SuppressFlow .

  2. Ve volání nespravovaného hostitelského rozhraní pro načtení modulu CLR (Common Language Runtime).

    Pokud se k načtení CLR používá nespravované hostitelské rozhraní (místo jednoduchého spravovaného spustitelného souboru), můžete zadat speciální příznak ve volání funkce CorBindToRuntimeEx . Pokud chcete povolit režim kompatibility pro celý proces, nastavte flags parametr funkce CorBindToRuntimeEx na STARTUP_LEGACY_IMPERSONATION.

Další informace najdete v elementu <alwaysFlowImpersonationPolicy>.

Konfigurační soubor

V aplikaci rozhraní .NET Framework lze tento prvek použít pouze v konfiguračním souboru aplikace.

Pro ASP.NET aplikaci je možné tok zosobnění nakonfigurovat v souboru aspnet.config, který se nachází v <adresáři Windows Folder>\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET ve výchozím nastavení zakáže tok zosobnění v souboru aspnet.config pomocí následujícího nastavení konfigurace:

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

Pokud chcete v ASP.NET povolit tok zosobnění, musíte explicitně použít následující nastavení konfigurace:

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

Příklad

Následující příklad ukazuje, jak určit chování starší verze, které neprovádí identitu Systému Windows mezi asynchronními body.

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

Viz také