次の方法で共有


<alwaysFlowImpersonationPolicy> 要素

更新 : 2007 年 11 月

偽装の実行方法に関係なく、Windows ID が常に非同期ポイント間をフローするように指定します。

<configuration> 要素
  <runtime> 要素
    <alwaysFlowImpersonationPolicy> 要素

<alwaysFlowImpersonationPolicy  
  enabled="true|false"/>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

説明

enabled

必須属性

Windows ID が非同期ポイント間をフローするかどうかを示します。

Enabled 属性

説明

false

Impersonate などのマネージ メソッドを介して偽装が実行されない限り、Windows ID は非同期ポイント間をフローしません。これは、既定の設定です。

true

偽装の実行方法に関係なく、Windows ID は常に非同期ポイント間をフローします。

子要素

なし

親要素

要素

説明

configuration

共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素です。

runtime

アセンブリのバインディングとガベージ コレクションに関する情報が含まれています。

解説

.NET Framework Version 1.0 および 1.1 では、Windows ID は非同期ポイント間をフローしません。一方、.NET Framework Version 2.0 には、現在の実行スレッドに関する情報を格納し、これをアプリケーション ドメイン内の非同期ポイント間でフローさせる ExecutionContext オブジェクトがあります。WindowsIdentity も、非同期ポイント間をフローする情報の一部としてフローします。ただし、偽装が Impersonate などのマネージ メソッドを使用して実行され、ネイティブ メソッドのプラットフォーム呼び出しなど、他の手段によって実行されていない場合に限ります。この要素を使用して、偽装の実行方法に関係なく、Windows ID が非同期ポイント間をフローするように指定します。

この既定の動作は、さらに次の 2 つの方法で変更できます。

  1. スレッドごとにマネージ コードを使用する。

    ExecutionContext.SuppressFlow メソッド、SecurityContext.SuppressFlowWindowsIdentity メソッド、または SecurityContext.SuppressFlow メソッドを使用して ExecutionContext 設定と SecurityContext 設定を変更すると、スレッドごとにフローを止めることができます。

  2. 共通言語ランタイム (CLR: Common Language Runtime) を読み込むアンマネージ ホスト インターフェイスの呼び出しを使用する。

    単純なマネージ実行可能ファイルの代わりに、アンマネージ ホスト インターフェイスを使用して CLR を読み込むと、CorBindToRuntimeEx 関数 関数の呼び出しで特別なフラグを指定できます。プロセス全体の互換モードを有効にするには、CorBindToRuntimeEx 関数 の flags パラメータを STARTUP_ALWAYSFLOW_IMPERSONATION に設定します。

構成ファイル

この要素は、アプリケーション構成ファイルでのみ使用できます。

使用例

マネージ メソッド以外の手段によって偽装が実行されている場合でも、Windows ID が非同期ポイント間をフローするように指定する方法を次の例に示します。

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

参照

参照

ランタイム設定スキーマ

<legacyImpersonationPolicy> 要素

その他の技術情報

.NET Framework の構成ファイル スキーマ