<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 つの方法で変更できます。
スレッドごとにマネージ コードを使用する。
ExecutionContext.SuppressFlow メソッド、SecurityContext.SuppressFlowWindowsIdentity メソッド、または SecurityContext.SuppressFlow メソッドを使用して ExecutionContext 設定と SecurityContext 設定を変更すると、スレッドごとにフローを止めることができます。
共通言語ランタイム (CLR: Common Language Runtime) を読み込むアンマネージ ホスト インターフェイスの呼び出しを使用する。
単純なマネージ実行可能ファイルの代わりに、アンマネージ ホスト インターフェイスを使用して CLR を読み込むと、CorBindToRuntimeEx 関数 関数の呼び出しで特別なフラグを指定できます。プロセス全体の互換モードを有効にするには、CorBindToRuntimeEx 関数 の flags パラメータを STARTUP_ALWAYSFLOW_IMPERSONATION に設定します。
構成ファイル
この要素は、アプリケーション構成ファイルでのみ使用できます。
使用例
マネージ メソッド以外の手段によって偽装が実行されている場合でも、Windows ID が非同期ポイント間をフローするように指定する方法を次の例に示します。
<configuration>
<runtime>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
参照
参照
<legacyImpersonationPolicy> 要素