AccessCheck

【勇芳软件工作室】汉化HomePreviousNext

服务器应用程序使用AccessCheck函数,以根据与对象关联的访问控制来检查客户端对对象的访问。

BOOL AccessCheck(

PSECURITY_DESCRIPTOR 【pSecurityDescriptor】,//指向安全描述符的指针
HANDLE 【ClientToken】,//处理客户端访问令牌
DWORD 【DesiredAccess】,//访问掩码以请求
PGENERIC_MAPPING 【GenericMapping】,//通用映射结构的地址
PPRIVILEGE_SET 【PrivilegeSet】,//特权集结构的地址
LPDWORD 【PrivilegeSetLength】,//特权集合结构的大小
LPDWORD 【GrantedAccess】,//授权访问掩码的地址
LPBOOL 【AccessStatus】//指示是否授予访问权限的标志的地址
); 

参数

【pSecurityDescriptor】

指向检查访问的SECURITY_DESCRIPTOR结构的指针。

【ClientToken】

标识表示客户端尝试访问的访问令牌。

必须从通信会话层__获取此句柄,例如命名管道__以防止可能的安全策略违规。

【DesiredAccess】

指定要请求的访问掩码。该掩码必须由MapGenericMask函数映射,以不包含通用访问权限。

【GenericMapping】

指向与正在检查访问的对象相关联的GENERIC_MAPPING结构的指针。

【PrivilegeSet】

指向PRIVILEGE_SET结构的指针,该函数用用于执行访问验证的任何特权填充。如果没有使用特权,则缓冲区包含由零权限组成的权限集。

【PrivilegeSetLength】

指定【PrivilegeSet】参数指向的缓冲区的大小(以字节为单位)。

【GrantedAccess】

指向变量的指针功能填充一个访问掩码,指示哪些访问权限被授予。如果功能失败,则不提供该访问掩码。

【AccessStatus】

指向访问检查成功或失败的标志。如果【AccessStatus】为TRUE,则访问令牌具有对该对象的请求访问权限。如果【AccessStatus】为FALSE,则访问令牌不具有请求的访问权限。当此参数为FALSE时,应用程序可以使用GetLastError函数获取扩展错误信息。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

AccessCheck功能将指定的安全描述符与指定的访问令牌进行比较,并在【AccessStatus】参数中指示访问是否被授予或拒绝。如果访问被授予,请求的访问掩码将成为对象的授权访问掩码。

在访问检查期间只检查自由访问控制列表。

也可以看看

AccessCheckAndAuditAlarm, AreAllAccessesGranted, AreAnyAccessesGranted, GENERIC_MAPPING, MapGenericMask, PrivilegeCheck, PRIVILEGE_SET, SECURITY_DESCRIPTOR