桌面安全性與存取權限
安全性可讓您控制桌面物件的存取。 如需安全性的詳細資訊,請參閱 存取控制模型。
呼叫CreateDesktop或CreateDesktopEx函式時,您可以指定桌面物件的安全性描述元。 如果您指定 Null,桌面會取得預設的安全性描述元。 桌面預設安全性描述元中的 ACL 來自其父視窗月臺。
若要取得或設定視窗月臺物件的安全性描述元,請呼叫 GetSecurityInfo 和 SetSecurityInfo 函式。
當您呼叫 OpenDesktop 或 OpenInputDesktop 函式時,系統會根據物件的安全性描述元檢查要求的存取權限。
桌面物件的有效存取權限包括 標準存取權限 和某些特定物件存取權限。 下表列出所有物件所使用的標準存取權限。
值 | 意義 |
---|---|
DELETE (0x00010000L) | 刪除物件的必要專案。 |
READ_CONTROL (0x00020000L) | 需要讀取物件之安全性描述元中的資訊,不包括 SACL 中的資訊。 若要讀取或寫入 SACL,您必須要求ACCESS_SYSTEM_SECURITY存取權限。 如需詳細資訊,請參閱 SACL 存取權限。 |
SYNCHRONIZE (0x00100000L) | 桌面物件不支援。 |
WRITE_DAC (0x00040000L) | 需要修改 物件之安全性描述元中的 DACL。 |
WRITE_OWNER (0x00080000L) | 需要變更 物件之安全性描述元中的擁有者。 |
下表列出物件特定的存取權限。
存取權限 | 描述 |
---|---|
DESKTOP_CREATEMENU (0x0004L) | 需要才能在桌面上建立功能表。 |
DESKTOP_CREATEWINDOW (0x0002L) | 必須在桌面上建立視窗。 |
DESKTOP_ENUMERATE (0x0040L) | 必須列舉桌面。 |
DESKTOP_HOOKCONTROL (0x0008L) | 建立任何視窗勾點的必要專案。 |
DESKTOP_JOURNALPLAYBACK (0x0020L) | 需要在桌面上執行日誌播放。 |
DESKTOP_JOURNALRECORD (0x0010L) | 需要在桌面上執行日誌錄製。 |
DESKTOP_READOBJECTS (0x0001L) | 需要讀取桌面上的物件。 |
DESKTOP_SWITCHDESKTOP (0x0100L) | 使用 SwitchDesktop 函式啟動桌面的必要專案。 |
DESKTOP_WRITEOBJECTS (0x0080L) | 需要才能在桌面上寫入物件。 |
以下是使用者登入會話之互動式視窗月臺中包含的桌面物件的 一般存取權限 。
存取權限 | 描述 |
---|---|
GENERIC_READ |
DESKTOP_READOBJECTS STANDARD_RIGHTS_READ |
GENERIC_WRITE |
DESKTOP_CREATEWINDOW DESKTOP_HOOKCONTROL DESKTOP_JOURNALPLAYBACK DESKTOP_JOURNALRECORD DESKTOP_WRITEOBJECTS STANDARD_RIGHTS_WRITE |
GENERIC_EXECUTE |
STANDARD_RIGHTS_EXECUTE |
GENERIC_ALL |
DESKTOP_CREATEWINDOW DESKTOP_ENUMERATE DESKTOP_HOOKCONTROL DESKTOP_JOURNALPLAYBACK DESKTOP_JOURNALRECORD DESKTOP_READOBJECTS DESKTOP_SWITCHDESKTOP DESKTOP_WRITEOBJECTS STANDARD_RIGHTS_REQUIRED |
如果您想要讀取或寫入物件的 SACL,您可以要求對桌面物件的ACCESS_SYSTEM_SECURITY存取權。 如需詳細資訊,請參閱 存取控制清單 (ACL) 和 SACL 存取權限。