AuthzAccessCheck 函式 (authz.h)

AuthzAccessCheck 函式會決定哪些存取位可以授與用戶端,以取得一組給定的安全性描述元AUTHZ_ACCESS_REPLY 結構會傳回授與存取掩碼和錯誤狀態的陣列。 您可以選擇性地快取一律授與的存取遮罩,並傳回快取值的句柄。

語法

AUTHZAPI BOOL AuthzAccessCheck(
  [in]            DWORD                              Flags,
  [in]            AUTHZ_CLIENT_CONTEXT_HANDLE        hAuthzClientContext,
  [in]            PAUTHZ_ACCESS_REQUEST              pRequest,
  [in, optional]  AUTHZ_AUDIT_EVENT_HANDLE           hAuditEvent,
  [in]            PSECURITY_DESCRIPTOR               pSecurityDescriptor,
  [in, optional]  PSECURITY_DESCRIPTOR               *OptionalSecurityDescriptorArray,
  [in, optional]  DWORD                              OptionalSecurityDescriptorCount,
  [in, out]       PAUTHZ_ACCESS_REPLY                pReply,
  [out, optional] PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE phAccessCheckResults
);

參數

[in] Flags

DWORD 值,指定如何複製安全性描述元。 此參數可以是下列其中一個值。

從 Windows 8 和 Windows Server 2012 開始,當您在遠端內容句柄上呼叫此函式時,上限 16 位必須是零。

意義
0
如果 phAccessCheckResults 不是 NULL,則會將安全性描述元的深層複本複製到 phAccessCheckResults 所參考的句柄。
AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD
1
不會執行安全性描述元的深層複本。 呼叫的應用程式必須在 phAccessCheckResults 中傳遞AUTHZ_ACCESS_CHECK_RESULTS_HANDLE句柄的位址。 AuthzAccessCheck 函式會將此句柄設定為安全性描述元,在後續呼叫 AuthzCachedAccessCheck 期間必須保持有效。

[in] hAuthzClientContext

表示客戶端之結構的句柄。

從 Windows 8 和 Windows Server 2012 開始,用戶端內容可以是本機或遠端。

[in] pRequest

AUTHZ_ACCESS_REQUEST 結構的指標 ,指定所需的存取掩碼、主體自我 安全性標識碼 (SID) ,以及存在的物件類型清單結構。

[in, optional] hAuditEvent

結構,包含物件特定的稽核資訊。 當此參數的值不是 Null 時,會自動要求稽核。 靜態稽核資訊是從資源管理員結構讀取。

從 Windows 8 和 Windows Server 2012 開始,當您搭配遠端內容句柄使用此函式時,參數的值必須是 NULL

[in] pSecurityDescriptor

要用於存取檢查 之SECURITY_DESCRIPTOR 結構的指標。 從這個安全性描述元挑選對象的擁有者 SID。 此安全性描述元中的 NULL 任意存取控制清單 (DACL) 代表整個物件的 NULL DACL。 請確定安全性描述項包含 OWNER 和 DACL 資訊,否則會產生錯誤碼 87 或「無效的參數」訊息。

重要NULL DACL允許所有使用者的所有類型的存取權;因此,請勿使用 NULL DACL。 如需建立 DACL 的相關信息,請參閱 建立 DACL
 
此安全性描述元中的 NULL 系統存取控制清單 (SACL) 會被視為空的 SACL。

[in, optional] OptionalSecurityDescriptorArray

SECURITY_DESCRIPTOR 結構的陣列。 NULL 存取控制清單 會將這些安全性描述元中的 ACL (A) CL 視為空白 ACL。 整個物件的 ACL 是所有 ACL 的邏輯串連。

[in, optional] OptionalSecurityDescriptorCount

不包括主要安全性描述元的安全性描述項數目。

[in, out] pReply

包含存取檢查結果 之AUTHZ_ACCESS_REPLY 結構的指標。 呼叫 AuthzAccessCheck 函式之前,應用程式必須配置 pReply 所參考之AUTHZ_ACCESS_REPLY結構之 GrantedAccessMaskSaclEvaluationResults 成員的記憶體。

[out, optional] phAccessCheckResults

指標,可傳回存取檢查快取結果的句柄。 當此參數值不是 Null 時,將會快取此存取檢查呼叫的結果。 這會導致MAXIMUM_ALLOWED檢查。

從 Windows 8 和 Windows Server 2012 開始,當您搭配遠端內容句柄使用此函式時,參數的值必須是 NULL

傳回值

如果函式成功,函式會傳回 TRUE

如果函式失敗,則會傳回 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果 pSecurityDescriptor 參數所指向之SECURITY_DESCRIPTOR結構的 DACL 包含回呼訪問控制專案 (ACE) ,將會呼叫 AuthzAccessCheckCallback 回呼函式。

如果在條件表達式中參考,安全性屬性變數必須存在於用戶端內容中,否則參考這些變數的條件表達式字詞將會評估為未知。 如需詳細資訊,請參閱 條件式 ACE 的安全性描述元定義語言 主題。

如需詳細資訊,請參閱 AccessCheck 的運作方式集中式授權原則 概觀。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 authz.h
程式庫 Authz.lib
Dll Authz.dll
可轉散發套件 Windows XP 上的 Windows Server 2003 系統管理工具套件

另請參閱

AUTHZ_ACCESS_REPLY

AUTHZ_ACCESS_REQUEST

AuthzCachedAccessCheck

基本 存取控制 函式

集中式授權原則

AccessCheck 的運作方式

SECURITY_DESCRIPTOR

條件式 ACE 的安全性描述元定義語言