Udostępnij za pośrednictwem


<alwaysFlowImpersonationPolicy> , element

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

<Konfiguracji>
  <Środowiska wykonawczego>
    <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 Atrybut wymagany.

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

Atrybut włączony

Wartość Opis
false Tożsamość systemu Windows nie przepływa w punktach asynchronicznych, chyba że personifikacja jest wykonywana za pomocą metod zarządzanych, takich jak Impersonate. Jest to opcja domyślna.
true Tożsamość systemu Windows zawsze przepływa w punktach asynchronicznych, niezależnie od tego, jak została wykonana personifikacja.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework.
runtime Zawiera informacje dotyczące powiązania zestawu oraz wyrzucania elementów bezużytecznych.

Uwagi

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

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

  1. W kodzie zarządzanym na podstawie wątku.

    Przepływ można pominąć na podstawie wątku, modyfikując ExecutionContext ustawienia i SecurityContext przy użyciu ExecutionContext.SuppressFlowmetody , 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 załadowania środowiska CLR, możesz określić specjalną flagę w wywołaniu funkcji CorBindToRuntimeEx . Aby włączyć tryb zgodności dla całego procesu, ustaw flags parametr dla funkcji CorBindToRuntimeEx na STARTUP_ALWAYSFLOW_IMPERSONATIONwartość .

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 Windows Folder>\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>  

W ASP.NET, jeśli 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 gdy personifikacja jest osiągana za pomocą metod innych niż metody zarządzane.

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

Zobacz też