PrivilegeCheck

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

PrivilegeCheck函数测试由特定访问令牌表示的安全上下文,以发现它是否包含指定的权限。服务器应用程序通常会调用此函数来检查客户端访问令牌的权限。

BOOL PrivilegeCheck(

HANDLE 【ClientToken】,//客户端访问令牌的句柄
PPRIVILEGE_SET 【RequiredPrivileges】,//特权地址
LPBOOL 【// address of flag for result】//结果地址
); 

参数

【ClientToken】

标识表示客户端进程的访问令牌。必须通过打开假冒客户端的线程的令牌来获取此句柄。必须打开令牌才能进行TOKEN_QUERY访问。

【RequiredPrivileges】

指向PRIVILEGE_SET结构,指定所需的权限。

检查指定的访问令牌以查看哪些指定的权限存在。当在访问令牌中找到PRIVILEGE_SET结构中指定的权限时,该函数将在相应的LUID_AND_ATTRIBUTES结构中为该权限设置SE_PRIVILEGE_USED_FOR_ACCESS属性。

【// address of flag for result】

指向一个标志,该函数设置为指示访问令牌是否包含任何或所有指定的权限。如果在【RequiredPrivileges】参数指向的PRIVILEGE_SET结构的PRIVILEGE_SET结构的控制成员中指定了PRIVILEGE_SET_ALL_NECESSARY,则只有在访问令牌中存在所有请求的权限时,此标志才为TRUE。如果未指定PRIVILEGE_SET_ALL_NECESSARY,并且如果存在任何特权,则该标志为TRUE。

返回值

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

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

也可以看看

AccessCheck, AccessCheckAndAuditAlarm, AreAllAccessesGranted, AreAnyAccessesGranted, LookupPrivilegeDisplayName, LookupPrivilegeName, LookupPrivilegeValue, LUID_AND_ATTRIBUTES, ObjectPrivilegeAuditAlarm, PRIVILEGE_SET, PrivilegedServiceAuditAlarm