共用方式為


ClickOnce 應用程式的程式代碼存取安全性

ClickOnce 應用程式是以 .NET Framework 為基礎,而且受限於程式代碼存取安全性限制。 因此,請務必瞭解程式代碼存取安全性的影響,並據此撰寫 ClickOnce 應用程式。

程式代碼存取安全性是 .NET Framework 中的機制,可協助限制程式代碼對受保護資源和作業的存取。 您應該設定 ClickOnce 應用程式的程式代碼存取安全性許可權,以使用適合應用程式安裝程式位置的區域。 在大部分情況下,您可以針對一組有限的許可權選擇 因特網 區域,或為一組更大的許可權選擇 近端內部網路 區域。

備註

在適用於 .NET Core 和 .NET 5 或更新版本的 ClickOnce 中,不支援程式代碼存取安全性。 在 .NET Framework 中,使用程式代碼存取安全性不是最佳做法,不建議使用。

預設 ClickOnce 程式碼存取安全性

根據預設,ClickOnce 應用程式會在用戶端電腦上安裝或執行時收到完全信任許可權。

  • 具有完全信任許可權的應用程式對檔案系統和登錄等資源具有不受限制的存取權。 這可能會導致您的應用程式(以及用戶的系統)遭到惡意代碼的攻擊。

  • 當應用程式需要「完全信任」許可權時,可能會提示終端使用者將許可權授與應用程式。 這表示應用程式不會真正提供 ClickOnce 體驗,而且提示可能會讓較不有經驗的使用者感到困惑。

    備註

    從 CD-ROM 等卸載式媒體安裝應用程式時,不會提示使用者。 此外,網路管理員可以設定網路原則,讓使用者在從信任的來源安裝應用程式時不會收到提示。 如需詳細資訊,請參閱 信任的應用程式部署概觀。

    若要限制 ClickOnce 應用程式的許可權,您可以修改應用程式的程式代碼存取安全性許可權,以要求最符合應用程式所需許可權的區域。 在大部分情況下,您可以選取正在部署應用程式的區域。 例如,如果您的應用程式是企業應用程式,您可以使用 近端內部網路 區域。 如果您的應用程式是因特網應用程式,您可以使用 因特網 區域。

設定安全性許可權

您應該一律將 ClickOnce 應用程式設定為要求適當的區域,以限制代碼存取安全性許可權。 您可以在 [項目設計工具] 的 [安全性] 頁面上設定安全性許可權。

[項目設計工具] 中的 [安全性] 頁面包含 [啟用 ClickOnce 安全性設定] 複選框。 選取此複選框時,安全性許可權要求會新增至應用程式的部署指令清單。 在安裝期間,如果要求的許可權超過部署應用程式所在的區域默認許可權,系統會提示使用者授與許可權。 如需詳細資訊,請參閱 如何:啟用 ClickOnce 安全性設定

從不同位置部署的應用程式會被授與不同層級的許可權,而不會提示。 例如,從因特網部署應用程式時,它會收到一組高度限制的許可權。 從本機內部網路安裝時,它會接收更多許可權,而且從CD-ROM安裝時,會收到「完全信任」許可權。

作為設定許可權的起點,您可以從 [安全性] 頁面上的 [ 區域 ] 列表中選取 安全性 區域。 如果您的應用程式可能會從多個區域部署,請選取具有最低許可權的區域。 如需詳細資訊,請參閱 如何:設定 ClickOnce 應用程式的安全性區域

可設定的屬性會依許可權集合而有所不同;並非所有許可權集合都有可設定的屬性。 如需應用程式可以要求之權限完整清單的詳細資訊,請參閱 System.Security.Permissions。 如需如何設定自定義區域許可權的詳細資訊,請參閱 如何:設定 ClickOnce 應用程式的自定義許可權

對具有限制許可權的應用程式進行偵錯

身為開發人員,您最有可能以完全信任許可權執行開發計算機。 因此,當您偵錯應用程式時,您不會看到使用者在以限制許可權執行時可能遇到的相同安全性例外狀況。

若要攔截這些例外狀況,您必須以與使用者相同的許可權對應用程式進行偵錯。 在項目設計工具的 [安全性] 頁面上,可以啟用具有限制許可權的偵錯。

當您針對具有限制許可權的應用程式進行偵錯時,系統會針對尚未在 [ 安全性 ] 頁面上啟用的任何程式代碼安全性需求引發例外狀況。 例外狀況協助程式隨即出現,提供如何修改程式代碼以防止例外狀況的建議。

此外,當您撰寫程式代碼時,程式代碼編輯器中的 IntelliSense 功能將會停用您設定的安全性許可權中未包含的任何成員。

如需詳細資訊,請參閱 如何:使用限制許可權對 ClickOnce 應用程式進行偵錯。

瀏覽器裝載應用程式的安全性許可權

Visual Studio 為 Windows Presentation Foundation (WPF) 應用程式提供下列項目類型:

  • WPF Windows 應用程式

  • WPF 網頁瀏覽器應用程式

  • WPF 自定義控制項程式庫

  • WPF 服務連結庫

    在這些項目類型中,只有 WPF 網頁瀏覽器應用程式裝載於網頁瀏覽器中,因此需要特殊的部署和安全性設定。 這些應用程式預設安全性設定如下所示:

  • 啟用 ClickOnce 安全性設定

  • 這是部分信任應用程式

  • 網際網路區域 (選取了 WPF 網頁瀏覽器應用程式的預設權限集)

    在 [ 進階安全性設定 ] 對話框中,已選取並停用 [以選取的許可權集偵錯此應用程式 ] 複選框。 這是因為瀏覽器中的應用程式無法關閉區域偵錯功能。