<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:
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.
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 aufSTARTUP_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>