次の方法で共有


alwaysFlowImpersonationPolicy> 要素の <

偽装の実行方法に関係なく、Windows ID が常に非同期ポイントをまたがっていることを指定します。

<構成>
  ランタイム><
    alwaysFlowImpersonationPolicy><する

構文

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

属性と要素

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

属性

属性 形容
enabled 必須の属性。

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

enabled 属性

価値 形容
false 偽装が Impersonateなどのマネージド メソッドを使用して実行されない限り、Windows ID は非同期ポイント間でフローしません。 これが既定値です。
true Windows ID は、偽装の実行方法に関係なく、常に非同期ポイント間を流れます。

子要素

何一つ。

親要素

要素 形容
configuration 共通言語ランタイムおよび .NET Framework アプリケーションで使用されるすべての構成ファイルのルート要素。
runtime アセンブリ バインドとガベージ コレクションに関する情報が含まれています。

備考

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

この既定の動作は、他の 2 つの方法で変更できます。

  1. スレッド単位のマネージド コード。

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

  2. 共通言語ランタイム (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>  

関連項目