Udostępnij za pośrednictwem


<alwaysFlowImpersonationPolicy, element>

Określa, że tożsamość systemu Windows zawsze przepływa w punktach asynchronicznych, niezależnie od sposobu personifikacji.

< > konfiguracji
   > środowiska uruchomieniowego<
     <alwaysFlowImpersonationPolicy>

Składnia

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
enabled Wymagany atrybut.

Wskazuje, czy tożsamość systemu Windows przepływa w punktach asynchronicznych.

włączony atrybut

Wartość Opis
false Tożsamość systemu Windows nie przepływa między punktami asynchronicznymi, chyba że personifikacja jest wykonywana za pomocą metod zarządzanych, takich jak Impersonate. Jest to wartość domyślna.
true Tożsamość systemu Windows zawsze przepływa w punktach asynchronicznych, niezależnie od sposobu personifikacji.

Elementy podrzędne

Żaden.

Elementy nadrzędne

Pierwiastek Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje .NET Framework.
runtime Zawiera informacje na temat powiązania zestawu i odzyskiwania pamięci.

Uwagi

W programie .NET Framework w wersji 1.0 i 1.1 tożsamość systemu Windows nie przepływa między punktami asynchronicznymi. W programie .NET Framework w wersji 2.0 istnieje obiekt ExecutionContext zawierający informacje o aktualnie wykonywanym wątku i przepływa go w punktach asynchronicznych w domenie aplikacji. WindowsIdentity również przepływa jako część informacji przepływających przez punkty asynchroniczne, pod warunkiem, że personifikacja została osiągnięta przy użyciu metod zarządzanych, takich jak Impersonate, a nie za pomocą innych środków, takich jak wywoływanie platformy do metod natywnych. Ten element służy do określania, że tożsamość systemu Windows przepływa między punktami asynchronicznymi, niezależnie od sposobu personifikacji.

To zachowanie domyślne można zmienić na dwa inne sposoby:

  1. W kodzie zarządzanym dla poszczególnych wątków.

    Przepływ można pominąć dla poszczególnych wątków, modyfikując ustawienia ExecutionContext i SecurityContext przy użyciu metody ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentitylub SecurityContext.SuppressFlow.

  2. W wywołaniu interfejsu hostingu niezarządzanego w celu załadowania środowiska uruchomieniowego języka wspólnego (CLR).

    Jeśli interfejs hostingu niezarządzanego (zamiast prostego zarządzanego pliku wykonywalnego) jest używany do ładowania środowiska CLR, można określić specjalną flagę w wywołaniu funkcji CorBindToRuntimeEx funkcji. Aby włączyć tryb zgodności dla całego procesu, ustaw parametr flags dla funkcji CorBindToRuntimeEx na wartość STARTUP_ALWAYSFLOW_IMPERSONATION.

Plik konfiguracji

W aplikacji .NET Framework ten element może być używany tylko w pliku konfiguracji aplikacji.

W przypadku aplikacji ASP.NET przepływ personifikacji można skonfigurować w pliku aspnet.config znajdującym się w katalogu <Folder systemu Windows>\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET domyślnie wyłącza przepływ personifikacji w pliku aspnet.config przy użyciu następujących ustawień konfiguracji:

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

Jeśli w ASP.NET chcesz zezwolić na przepływ personifikacji, musisz jawnie użyć następujących ustawień konfiguracji:

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

Przykład

W poniższym przykładzie pokazano, jak określić, że tożsamość systemu Windows przepływa w punktach asynchronicznych, nawet jeśli personifikacja jest osiągana za pomocą środków innych niż metody zarządzane.

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

Zobacz też