ClickOnce 應用程式的程式碼存取安全性
ClickOnce 應用程式是以 .NET Framework 為基礎,並受到程式碼存取安全性條件約束的限制。 因此,有一點很重要的是,您必須了解程式碼存取安全性的含意,並依此撰寫 ClickOnce 應用程式。
程式碼存取安全性是 .NET Framework 的一項機制,能夠協助限制程式碼對受保護之資源和作業的存取。 您應該設定 ClickOnce 應用程式的程式碼存取安全性權限,以使用適合應用程式安裝程式位置的區域。 在許多情況下,您可以選擇 [網際網路] 區域 (針對有限權限集合) 或 [近端內部網路] 區域 (針對更多權限集合)。
預設的 ClickOnce 程式碼存取安全性
根據預設,當 ClickOnce 應用程式於用戶端電腦上安裝或執行時,它會收到完全信任的權限。
具有「完全信任」權限的應用程式,對於檔案系統和登錄之類的資源,都可以進行無限制的存取。 這樣會讓您的應用程式 (以及使用者的系統) 有潛在的惡意程式碼攻擊之風險。
當應用程式需要「完全信任」權限時,使用者可能會收到提示要求對應用程式授與權限。 這表示應用程式就無法真正提供 ClickOnce 經驗,而且提示可能會使經驗較少的使用者感到困惑。
注意事項 從 CD-ROM 之類的卸除式媒體安裝應用程式時,並不會提示使用者。此外,網路系統管理員可以設定網路原則,這樣當使用者從受信任來源安裝應用程式時,就不會收到提示。如需詳細資訊,請參閱 受信任的應用程式部署概觀。
若要限制 ClickOnce 應用程式的權限,您可以修改應用程式的程式碼存取安全性權限,以要求最符合應用程式需求的區域。 在大多數情況下,您可以選取正在部署應用程式的區域。 例如,如果您的應用程式為企業應用程式,則可以使用 [近端內部網路] 區域。 如果您的應用程式為網際網路應用程式,則可以使用 [網際網路] 區域。
設定安全性權限
您必須將 ClickOnce 應用程式設定為要求適當的區域以限制程式碼存取安全性權限。 您可以在 [專案設計工具] 的 [安全性] 頁面上設定安全性權限。
[專案設計工具] 的 [安全性] 頁面含有 [啟用 ClickOnce 安全性設定] 核取方塊。 當選取此核取方塊時,便會將安全性權限要求加入應用程式的部署資訊清單。 在安裝時,如果所要求的權限超過應用程式部署來源區域的預設權限,使用者便會收到要求授與權限的提示。 如需詳細資訊,請參閱 如何:啟用 ClickOnce 安全性設定。
從不同位置部署的應用程式,會被授與不同的權限等級且不出現提示。 例如,當應用程式從網際網路部署時,便會收到具有高度限制的一組權限集合。 從近端內部網路安裝時,將會收到更多權限。若是從 CD-ROM 安裝,則會收到「完全信任」的權限。
您可以從 [安全性] 頁面的 [區域] 清單中選取安全性區域,以開始設定權限。 如果應用程式可能從一個以上的區域部署,請選取具有最小權限的區域。 如需詳細資訊,請參閱 如何:設定 ClickOnce 應用程式的安全性區域。
根據權限集合,可以設定的屬性會有所不同,並不是所有權限集合都有可設定的屬性。 如需應用程式可以要求之使用權限的完整清單的詳細資訊,請參閱 System.Security.Permissions。 如需如何設定自訂區域使用權限的詳細資訊,請參閱 如何:設定 ClickOnce 應用程式的自訂使用權限。
偵錯具有限制權限的應用程式
身為開發人員,您極有可能以「完全信任」權限使用您的開發電腦。 因此,當您偵錯應用程式時,就會看不到與使用者以限制權限執行該應用程式時可能看到的相同安全性例外狀況 (Exception)。
為了攔截這些例外狀況,您必須以與使用者相同的權限偵錯應用程式。 您可以在 [專案設計工具] 的 [安全性] 頁面中啟用以受限權限偵錯的功能。
以限制權限偵錯應用程式時,在 [安全性] 頁面中未啟用的程式碼安全性要求都會引發例外狀況。 例外狀況 Helper 將會出現,提供修改程式碼以避免例外狀況的建議。
此外,在撰寫程式碼時,[程式碼編輯器] 中的 IntelliSense 功能會停用已設定之安全性權限所未包含的任何成員。
如需詳細資訊,請參閱 如何:以限制使用權限偵錯 ClickOnce 應用程式。
瀏覽器裝載之應用程式的安全性權限
Visual Studio 為 Windows Presentation Foundation (WPF) 應用程式提供下列專案類型:
WPF Windows 應用程式
WPF Web 瀏覽器應用程式
WPF 自訂控制項程式庫
WPF 服務程式庫
在這些專案類型中,只有 WPF Web 瀏覽器應用程式是裝載於 Web 瀏覽器,因此需要特殊的部署和安全性設定。 這些應用程式的預設安全性設定如下所示:
啟用 ClickOnce 安全性設定
這是部分信任的應用程式
網際網路區域 (選取 WPF Web 瀏覽器應用程式的預設權限集合)
在 [進階安全性設定] 對話方塊中,[以選取的使用權限集合對此應用程式進行偵錯] 核取方塊會選取和停用。 這是因為無法對瀏覽器裝載的應用程式關閉 [在區域中偵錯]。 如需詳細資訊,請參閱 WPF XAML 瀏覽器應用程式概觀。