共用方式為


UI 自動化安全性概觀

備註

本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化

本概觀說明 Windows Vista 中Microsoft用戶介面自動化的安全性模型。

用戶帳戶控制

安全性是 Windows Vista 的主要焦點,創新是使用者以標準(非系統管理員)使用者身分執行的能力,而不一定會遭到封鎖而無法執行需要較高許可權的應用程式和服務。

在 Windows Vista 中,大部分的應用程式都會以標準或系統管理令牌提供。 如果應用程式無法識別為系統管理應用程式,則預設會啟動為標準應用程式。 在啟動具有系統管理權限的應用程式之前,Windows Vista 會提示使用者同意以提升的權限執行該應用程式。 默認會顯示同意提示,即使使用者是本機 Administrators 群組的成員,因為系統管理員會以標準使用者身分執行,直到需要系統管理認證的應用程式或系統元件要求許可權才能執行為止。

需要較高許可權的工作

當使用者嘗試執行需要系統管理許可權的工作時,Windows Vista 會顯示對話方塊,要求使用者同意繼續。 此對話框會受到保護,防止跨進程通訊,讓惡意軟體無法模擬用戶輸入。 同樣地,其他進程通常無法存取桌面登入畫面。

使用者介面自動化客戶端必須與其他進程通訊,其中一些程式可能以較高的許可權層級執行。 用戶端可能也需要存取其他進程通常看不到的系統對話框。 因此,使用者介面自動化客戶端必須由系統信任,而且必須以特殊許可權執行。

若應用程式要被信任,以與具有較高許可權層級的應用程式進行通訊,則必須對其簽署。

清單檔案

若要獲得受保護系統 UI 的存取權,應用程式必須使用包含 uiAccess 標記中的屬性的 requestedExecutionLevel 清單檔來建置,如下所示:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

level此程式代碼中的 屬性值只是範例。

uiAccess 預設為「false」,也就是說,如果省略屬性,或沒有元件的配置清單,應用程式將無法存取受保護的使用者介面。