<alwaysFlowImpersonationPolicy> 要素
偽装の実行方法に関係なく、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 バージョン 2.0 では、現在実行中のスレッドに関する情報を格納する ExecutionContext オブジェクトがあり、アプリケーション ドメイン内の非同期ポイント間をフローします。 また、WindowsIdentity は、非同期ポイント間をフローする情報の一部としてもフローします。これは、Impersonate などのマネージド メソッドを使用して偽装が行われ、ネイティブ メソッドへのプラットフォーム呼び出しなどの他の方法は使用されなかった場合に限ります。 この要素は、偽装がどのように実現されたかに関係なく、Windows ID が非同期ポイント間をフローすることを指定するために使用されます。
この既定の動作は、次の 2 つの方法で変更できます。
マネージド コード内で、スレッド単位で行う場合。
ExecutionContext.SuppressFlow、SecurityContext.SuppressFlowWindowsIdentity、または SecurityContext.SuppressFlow メソッドを使用して ExecutionContext 設定および SecurityContext 設定を変更することで、スレッド単位でフローを抑制できます。
アンマネージド ホスティング インターフェイスを呼び出して、共通言語ランタイム (CLR) を読み込む場合。
(単純なマネージド実行可能ファイルではなく) アンマネージド ホスティング インターフェイスを使用して CLR を読み込む場合は、CorBindToRuntimeEx 関数の呼び出しで特別なフラグを指定できます。 プロセス全体で互換モードを有効にするには、CorBindToRuntimeEx 関数の
flags
パラメーターをSTARTUP_ALWAYSFLOW_IMPERSONATION
に設定します。
構成ファイル
.NET Framework アプリケーションでは、この要素はアプリケーション構成ファイルでのみ使用できます。
ASP.NET アプリケーションの場合は、<Windows フォルダー>\Microsoft.NET\Framework\vx.x.xxxx ディレクトリにある aspnet.config ファイルで偽装フローを構成できます。
ASP.NET では、既定で、次の構成設定を使用して、aspnet.config ファイルで偽装フローが無効になっています。
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
</runtime>
</configuration>
ASP.NET では、代わりに偽装のフローを許可する場合は、次の構成設定を明示的に使用する必要があります。
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
例
次の例では、マネージド メソッド以外の方法で偽装が行われた場合でも、Windows ID が非同期ポイント間をフローするように指定する方法を示します。
<configuration>
<runtime>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
関連項目
.NET