OpenThreadToken功能打开与线程相关联的访问令牌。
BOOL OpenThreadToken(
HANDLE 【ThreadHandle】, | //处理线程 |
DWORD 【DesiredAccess】, | //访问进程 |
BOOL 【OpenAsSelf】, | //进程或线程安全的标志 |
PHANDLE 【TokenHandle】 | //指向要处理的指针以打开访问令牌 |
); |
参数
【ThreadHandle】
标识其访问令牌被打开的线程。
【DesiredAccess】
指定一个访问掩码,指定访问令牌的请求类型。这些请求的访问类型与令牌的自由访问控制列表(ACL)进行协调,以确定哪些访问被授予或拒绝。已经为访问令牌定义了以下访问权限。
值 | 含义 |
TOKEN_ADJUST_DEFAULT | 需要更改访问令牌的默认ACL,主组或所有者。 |
TOKEN_ADJUST_GROUPS | 需要更改访问令牌中指定的组。 |
TOKEN_ADJUST_PRIVILEGES | 需要更改访问令牌中指定的权限。 |
TOKEN_ALL_ACCESS | 结合STANDARD_RIGHTS_REQUIRED标准访问权限和令牌的所有个人访问权限。 |
TOKEN_ASSIGN_PRIMARY | 除了SE_CREATE_TOKEN_NAME权限之外,还需要将主令牌附加到进程。 |
TOKEN_DUPLICATE | 需要复制访问令牌。 |
TOKEN_EXECUTE | 结合STANDARD_RIGHTS_EXECUTE标准访问权限和TOKEN_IMPERSONATE访问权限。 |
TOKEN_IMPERSONATE | 必须将一个模拟访问令牌附加到进程。 |
TOKEN_QUERY | 需要查询访问令牌的内容。 |
TOKEN_QUERY_SOURCE | 需要查询访问令牌的来源。 |
TOKEN_READ | 结合STANDARD_RIGHTS_READ标准访问权限和TOKEN_QUERY访问权限。 |
TOKEN_WRITE | 结合STANDARD_RIGHTS_WRITE标准访问权限和TOKEN_ADJUST_PRIVILEGES,TOKEN_ADJUST_GROUPS和TOKEN_ADJUST_DEFAULT访问权限。 |
【OpenAsSelf】
指定一个标志,指示是否针对调用OpenThreadToken函数的线程的安全上下文或针对调用线程的进程的安全上下文进行访问检查。
如果此参数为FALSE,则使用调用线程的安全上下文执行访问检查。如果线程模拟客户端,则此安全上下文可以是客户端进程的安全上下文。如果此参数为TRUE,则使用调用线程进程的安全上下文进行访问检查。
【TokenHandle】
指向功能返回时识别新打开的访问令牌的句柄。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
【OpenAsSelf】参数允许服务器进程在客户端进程指定了SECURITY_IMPERSONATION_LEVEL枚举类型的SecurityIdentification模拟级别时打开客户端进程的访问令牌。没有此参数,调用进程无法使用客户端的安全上下文打开客户端的访问令牌,因为无法使用SecurityIdentification模拟级别打开执行级对象。
也可以看看
AdjustTokenGroups, AdjustTokenPrivileges, GetTokenInformation, OpenProcessToken, SetThreadToken, SetTokenInformation