共用方式為


<loadFromRemoteSources> 元素

規定從遠端來源載入的組件是否應在 .NET Framework 4 及更新版本中獲得完全信任。

備註

如果你是因為 Visual Studio 專案錯誤清單中的錯誤訊息或建置錯誤而被導向這篇文章,請參考 「如何:在 Visual Studio 中使用網頁中的組合語言」。

<組態>
   <運行時間>
     <載入FromRemoteSources>

語法

<loadFromRemoteSources
   enabled="true|false"/>

屬性和元素

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
enabled 必要屬性。

規定從遠端來源載入的組裝是否應被授予完全信任。

啟用屬性

價值觀 Description
false 不要完全信任來自遠端來源的應用程式。 這是預設值。
true 對來自遠端來源的應用程式給予完全信任。

子專案

沒有。

父元素

元素 Description
configuration 通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。
runtime 包含有關執行階段初始化選項的資訊。

備註

在 .NET Framework 3.5 及更早版本中,如果你從遠端載入一個組件,組件中的程式碼會以部分信任方式執行,並使用一個依賴於載入區域的授權集。 例如,如果你從網站載入一個組件,它會被載入網際網路區域並獲得網際網路權限集。 換句話說,它是在網路沙盒中執行的。

從 .NET Framework 4 開始,程式碼存取安全(CAS)政策被停用,組件檔以完全信任方式載入。 通常,這會讓裝載 Assembly.LoadFrom 先前沙盒方法的組裝體獲得完全信任。 為避免此情況,預設關閉從遠端來源載入的組件中執行程式碼的能力。 預設情況下,若嘗試載入遠端組裝, FileLoadException 會拋出類似的例外訊息:

System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.

要載入組合語言並執行其程式碼,您必須以下其中之一:

  • 明確建立組合語言的沙盒(參見 如何:在沙盒中執行部分受信任程式碼)。

  • 在完全信任中執行組合語言的程式碼。 你透過設定 <loadFromRemoteSources> 元素來達成這個目標。 它允許你指定,早期版本中以部分信任方式執行的組件,現在在 .NET Framework 4 及更新版本中以完全信任方式執行。

這很重要

如果組件不應該以完全信任方式執行,請不要設定此設定元素。 相反地,建立一個沙 AppDomain 盒來載入組裝。

enabled該元素的屬性<loadFromRemoteSources>僅在禁用程式碼存取安全(CAS)時有效。 預設情況下,在 .NET Framework 4 及更新版本中,CAS 政策被禁用。 如果你設定 enabledtrue,遠端集體會獲得完全信任。

enabled 未設定為 true,則在以下任一條件下擲出 a FileLoadException

  • 目前該領域的沙箱行為與 .NET Framework 3.5 中的行為不同。 這需要停用 CAS 政策,且目前的網域不可被沙盒化。

  • 被裝載的組件並非來自 MyComputer 區域。

將元素設定 <loadFromRemoteSources> 為 可以 true 防止此例外被拋出。 它讓你能指定不依賴通用語言執行環境來沙箱載入的組件組語言以保障安全,並且允許它們在完全信任的狀態下執行。

註釋

  • 在 .NET Framework 4.5 及更新版本中,本地網路共享(即 本地內聯網安全區)上的組件預設以完全信任方式運行;你不必啟用元素 <loadFromRemoteSources> 。 對於非本地機器或本地內聯網的安全區域,請將值設為 true

  • 如果應用程式是從網路複製而來,Windows 會標記該應用程式為網頁應用程式,即使它位於本地電腦上。 你可以透過更改檔案屬性來更改該指定,或是用該 <loadFromRemoteSources> 元素來賦予組裝體完全信任。 作為替代方案,你可以用這個 UnsafeLoadFrom 方法載入作業系統標記為從網路載入的本地組件。

  • 你可能會在 Windows 虛擬電腦應用程式中遇到FileLoadException 這種情況可能發生在你嘗試從主機電腦的連結資料夾載入檔案時。 當你嘗試從透過 遠端桌面服務 (終端服務)連結的資料夾載入檔案時,也可能發生這種情況。 為避免例外,請設 enabledtrue

組態檔

此元素通常用於應用程式設定檔,但根據上下文也可能用於其他設定檔。 欲了解更多資訊,請參閱 .NET Security 部落格中的文章《 更多隱含的 CAS 政策用途:loadFromRemoteSources 》。

Example

以下範例說明如何對來自遠端來源的組裝體給予完全信任。

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

另請參閱