Freigeben über


<alwaysFlowImpersonationPolicy>-Element

Gibt an, dass die Windows-Identität immer über asynchrone Punkte verläuft, unabhängig davon, wie der Identitätswechsel durchgeführt wurde.

<configuration>
  <runtime>
    <alwaysFlowImpersonationPolicy>

Syntax

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

attribute Beschreibung
enabled Erforderliches Attribut.

Zeigt an, ob die Windows-Identität über asynchrone Punkte hinweg fließt.

Enabled-Attribut

Wert BESCHREIBUNG
false Die Windows-Identität fließt nicht über asynchrone Punkte hinweg, es sei denn, der Identitätswechsel wird mittels verwalteter Methoden wie Impersonate ausgeführt. Dies ist die Standardoption.
true Die Windows-Identität fließt immer über asynchrone Punkte hinweg, unabhängig davon, wie der Identitätswechsel durchgeführt wurde.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
configuration Das Stammelement in jeder von den Common Language Runtime- und .NET Framework-Anwendungen verwendeten Konfigurationsdatei.
runtime Enthält Informationen über die Assemblybindung und die Garbage Collection.

Bemerkungen

In den .NET Framework-Versionen 1.0 und 1.1 fließt die Windows-Identität nicht über asynchrone Punkte hinweg. In .NET Framework, Version 2.0, gibt es ein ExecutionContext-Objekt, das Informationen zum derzeit ausgeführten Thread enthält und ihn über asynchrone Punkte innerhalb einer Anwendungsdomäne fließen lässt. Die WindowsIdentity fließt auch als Teil der Informationen, die über die asynchronen Punkte fließen, vorausgesetzt, der Identitätswechsel wurde mit verwalteten Methoden wie Impersonate und nicht über andere Mittel wie Plattformaufrufe nativer Methoden erreicht. Dieses Element wird verwendet, um anzugeben, dass die Windows-Identität über asynchrone Punkte hinweg fließt, unabhängig davon, wie der Identitätswechsel erreicht wurde.

Sie können dieses Standardverhalten auf zwei andere Weisen ändern:

  1. In verwaltetem Code auf Threadbasis.

    Sie können den Flow pro Thread unterdrücken, indem Sie die Einstellungen ExecutionContext und SecurityContext mithilfe der Methode ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity oder SecurityContext.SuppressFlow ändern.

  2. Im Aufruf der nicht verwalteten Hostingschnittstelle, um die Common Language Runtime (CLR) zu laden.

    Wenn eine nicht verwaltete Hostingschnittstelle (anstelle einer einfachen verwalteten ausführbaren Datei) zum Laden der CLR verwendet wird, können Sie ein spezielles Flag im Aufruf der CorBindToRuntimeEx-Funktion angeben. Um den Kompatibilitätsmodus für den gesamten Prozess zu aktivieren, legen Sie den Parameter flags für die CorBindToRuntimeEx-Funktion auf STARTUP_ALWAYSFLOW_IMPERSONATION fest.

Konfigurationsdatei

In einer .NET Framework-Anwendung kann dieses Element nur in der Anwendungskonfigurationsdatei verwendet werden.

Für eine ASP.NET-Anwendung kann der Identitätswechselflow in der Datei „aspnet.config“ konfiguriert werden, die sich im Verzeichnis „<Windows-Ordner>\Microsoft.NET\Framework\vx.x.xxxx“ befindet.

ASP.NET deaktiviert standardmäßig den Identitätswechselflow in der „aspnet.config“-Datei mithilfe der folgenden Konfigurationseinstellungen:

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

Wenn Sie in ASP.NET den Identitätswechsel stattdessen zulassen möchten, müssen Sie explizit die folgenden Konfigurationseinstellungen verwenden:

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

Beispiel

Das folgende Beispiel zeigt, wie Sie angeben, dass die Windows-Identität über asynchrone Punkte hinweg fließen soll, auch wenn der Identitätswechsel mit anderen Mitteln als verwalteten Methoden erreicht wird.

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

Siehe auch