UI 自動化安全性概觀
注意事項 |
---|
這份文件適用於想要使用 System.Windows.Automation 命名空間中定義之 Managed UI Automation 類別的 .NET Framework 開發人員。如需 UI Automation 的最新資訊,請參閱 Windows Automation API:使用者介面自動化 (英文)。 |
本概觀說明 Windows Vista 中 Microsoft UI Automation的安全性模型。
這個主題包含下列章節。
- 使用者帳戶控制
- 需要更高權限的工作
- 資訊清單檔
使用者帳戶控制
安全性是 Windows Vista 的主要焦點,在所有創新功能中,這項功能可以讓使用者以標準 (非管理員) 使用者身分執行,但不會被封鎖而無法執行需要更高權限的應用程式和服務。
在 Windows Vista 中,大部分的應用程式都具備標準或管理語彙基元。 如果無法將應用程式識別為管理應用程式,根據預設,它就會啟動為標準應用程式。 識別為管理的應用程式啟動之前,Windows Vista 會提示使用者是否同意以提高權限的方式執行應用程式。 即使使用者是本機 Administrators 群組的成員,預設也會顯示同意提示,因為系統管理員會以標準使用者身分執行,直到需要管理認證的應用程式或系統元件要求權限執行。
需要更高權限的工作
當使用者嘗試執行需要系統管理員權限的工作時,Windows Vista 會顯示對話方塊,詢問使用者是否同意繼續進行。 這個對話方塊會防止跨處理序通訊的存取,因此惡意軟體無法模擬使用者輸入。 同樣地,通常其他處理序也無法存取桌面登入畫面。
UI 自動化用戶端必須與其他處理序通訊,其中部分可能會以更高的權限層級執行。 用戶端也需要存取一般不會對其他處理序顯示的系統對話方塊。 因此,UI Automation用戶端必須受系統信任,而且必須以特殊權限執行。
若要受信任以便與以較高權限層級執行的應用程式通訊,必須簽署應用程式。
資訊清單檔
若要取得對受保護系統 UI 的存取權,應用程式在建立時必須含有資訊清單檔,且該資訊清單檔中必須含有特殊屬性。 這個 uiAccess 屬性包含在 requestedExecutionLevel 標記中,如下所示:
<trustInfo xmlns="urn:0073chemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
UIAccess="true" />
</requestedPrivileges>
</security>
</trustInfo>
這個程式碼中 level 屬性的值只是範例。
根據預設,UIAccess 為 "false",也就是說,如果省略此屬性,或者組件沒有資訊清單,應用程式就無法取得受保護的 UI 的存取權。
如需 Windows Vista 安全性、簽署應用程式和建立組件資訊清單 (Assembly Manifest) 的詳細資訊,請參閱 MSDN 中的<最低權限環境中的開發人員最佳做法和應用程式方針>(英文)。