共用方式為


<alwaysFlowImpersonationPolicy> 項目

更新:2007 年 11 月

指定 Windows 識別一定會跨非同步點流動,不論如何執行模擬。

<configuration> 項目
  <runtime> 項目
    <alwaysFlowImpersonationPolicy> 項目

 <alwaysFlowImpersonationPolicy     enabled="true|false"/>

屬性和項目

下列章節會說明屬性 (Attribute)、子項目和父項目。

屬性

屬性

說明

enabled

必要的屬性。

指出 Windows 識別是否會跨非同步點流動。

啟用屬性

說明

false

Windows 識別不會跨非同步點流動,除非是透過如 Impersonate 的 Managed 方法來執行模擬。這是預設值。

true

Windows 識別一定會跨非同步點流動,不論如何執行模擬。

子項目

父項目

項目

說明

configuration

Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目。

runtime

包含有關組件繫結和記憶體回收的資訊。

備註

在 .NET Framework 1.0 和 1.1 版中,Windows 識別不會跨非同步點流動。在 .NET Framework 2.0 版中,有一個 ExecutionContext 物件包含了與目前執行之執行緒有關的資訊,而且它會在應用程式定義域內跨非同步點流動。WindowsIdentity 也會當做此資訊的一部分進行跨非同步點流動,但前提是模擬作業是利用類似 Impersonate 的 Managed 方法所完成,而不是透過類似原生方法的平台叫用等其他方法來完成。這個項目是用來指定 Windows 識別不會跨非同步點流動,不論模擬作業是如何完成。

您可以使用兩種其他方式來更改此預設行為:

  1. 針對個別執行緒在 Managed 程式碼中進行。

    您可以針對個別執行緒來隱藏此流程,其方式是使用 ExecutionContext.SuppressFlowSecurityContext.SuppressFlowWindowsIdentitySecurityContext.SuppressFlow 方法修改 ExecutionContextSecurityContext 設定。

  2. 在 Unmanaged 裝載介面的呼叫中,用來載入 Common Language Runtime (CLR)。

    如果使用 Unmanaged 裝載介面 (而非單一 Managed 可執行檔) 來載入 CLR,您可以在 CorBindToRuntimeEx 函式 函式的呼叫中指定特殊旗標。若要為整個處理序啟用相容性模式,請將 CorBindToRuntimeEx 函式 的 flags 參數設定為 STARTUP_ALWAYSFLOW_IMPERSONATION。

組態檔

這個項目只能在應用程式組態檔中使用。

範例

下列範例將示範如何指定 Windows 識別會跨非同步點流動,即使是透過 Managed 方法以外的方式來完成模擬。

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

請參閱

參考

執行階段設定結構描述

<legacyImpersonationPolicy> 項目

其他資源

.NET Framework 的組態檔結構描述