<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:
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 .
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 naSTARTUP_ALWAYSFLOW_IMPERSONATION
wartość .
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>