Freigeben über


<legacyImpersonationPolicy>-Element

Aktualisiert: November 2007

Gibt an, dass die Windows-Identität, unabhängig von den Flusseinstellungen für den Ausführungskontext des aktuellen Threads, nicht über asynchrone Punkte übergeben wird.

<configuration>-Element
  <runtime>-Element
    <legacyImpersonationPolicy>-Element

<legacyImpersonationPolicy  
   enabled="true|false"/>

Attribute und Elemente

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

Attribute

Attribut

Beschreibung

enabled

Erforderliches Attribut.

Gibt an, dass die WindowsIdentity, unabhängig von den ExecutionContext-Flusseinstellungen für den Ausführungskontext des aktuellen Threads, nicht über asynchrone Punkte übergeben wird.

Enabled-Attribut

Wert

Beschreibung

false

Die WindowsIdentity wird, je nach den ExecutionContext-Flusseinstellungen für den aktuellen Thread, über asynchrone Punkte übergeben. Dies ist die Standardeinstellung.

true

Die WindowsIdentity wird, unabhängig von den ExecutionContext-Flusseinstellungen für den Ausführungskontext des aktuellen Threads, nicht über asynchrone Punkte übergeben.

Untergeordnete Elemente

Keine.

Übergeordnete Elemente

Element

Beschreibung

configuration

Das Stammelement in jeder Konfigurationsdatei, das von der Common Language Runtime und den .NET Framework-Anwendungen verwendet wird.

runtime

Enthält Informationen über die Assemblybindung und die Garbage Collection.

Hinweise

In den .NET Framework-Versionen 1.0 und 1.1 wird die WindowsIdentity nicht über benutzerdefinierte asynchrone Punkte übergeben. .NET Framework, Version 2.0, enthält ein ExecutionContext-Objekt mit Informationen über den gegenwärtig ausgeführten Thread, das über asynchrone Punkte innerhalb einer Anwendungsdomäne übergeben wird. Dabei wird auch die WindowsIdentity übergeben, d. h., ein Identitätswechselkontext wird, sofern vorhanden, ebenfalls übergeben. Mit diesem Element wird angegeben, dass die WindowsIdentity nicht über asynchrone Punkte übergeben wird.

Tipp

Die Common Language Runtime (CLR) kann Identitätswechsel erkennen, die nur mit verwaltetem Code vorgenommen werden. Anders verhält es sich bei Identitätswechsel außerhalb von verwaltetem Code, z. B. über Plattformaufrufe zu nicht verwaltetem Code oder über direkte Aufrufe zu Win32-Funktionen. Nur verwaltete WindowsIdentity-Objekte können über asynchrone Punkte übergeben werden, sofern das alwaysFlowImpersonationPolicy-Element nicht auf true (<alwaysFlowImpersonationPolicy enabled="true"/>) festgelegt wurde. Wenn das alwaysFlowImpersonationPolicy-Element auf true festgelegt wird, gibt dies an, dass die Windows-Identität immer über asynchrone Punkte übergeben wird, unabhängig von der Art des Identitätswechsels. Weitere Informationen zur Übergabe von nicht verwaltetem Identitätswechsel über asynchrone Punkte finden Sie unter <alwaysFlowImpersonationPolicy>-Element.

Dieses Element kann nur in der Anwendungskonfigurationsdatei verwendet werden.

Es gibt zwei Möglichkeiten zum Ändern dieses Standardverhaltens:

  1. In verwaltetem Code für die einzelnen Threads.

    Sie können die Übergabe für die einzelnen Threads unterdrücken, indem Sie die ExecutionContext-Einstellungen und die SecurityContext-Einstellungen mithilfe der Methoden ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity oder SecurityContext.SuppressFlow ändern.

  2. Im Aufruf der nicht verwalteten Hostschnittstelle zum Laden der Common Language Runtime (CLR).

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

Beispiel

Im folgenden Beispiel wird das Angeben des Legacyverhaltens veranschaulicht, sodass die Windows-Identität nicht über asynchrone Punkte übergeben wird.

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

Siehe auch

Referenz

Schema für Laufzeiteinstellungen

Weitere Ressourcen

Konfigurationsdateischema für .NET Framework