TOKEN_INFORMATION_CLASS 枚举 (winnt.h)

TOKEN_INFORMATION_CLASS枚举包含的值指定要分配给访问令牌或从访问令牌检索的信息类型。

GetTokenInformation 函数使用这些值来指示要检索的令牌信息的类型。

SetTokenInformation 函数使用这些值来设置令牌信息。

语法

typedef enum _TOKEN_INFORMATION_CLASS {
  TokenUser = 1,
  TokenGroups,
  TokenPrivileges,
  TokenOwner,
  TokenPrimaryGroup,
  TokenDefaultDacl,
  TokenSource,
  TokenType,
  TokenImpersonationLevel,
  TokenStatistics,
  TokenRestrictedSids,
  TokenSessionId,
  TokenGroupsAndPrivileges,
  TokenSessionReference,
  TokenSandBoxInert,
  TokenAuditPolicy,
  TokenOrigin,
  TokenElevationType,
  TokenLinkedToken,
  TokenElevation,
  TokenHasRestrictions,
  TokenAccessInformation,
  TokenVirtualizationAllowed,
  TokenVirtualizationEnabled,
  TokenIntegrityLevel,
  TokenUIAccess,
  TokenMandatoryPolicy,
  TokenLogonSid,
  TokenIsAppContainer,
  TokenCapabilities,
  TokenAppContainerSid,
  TokenAppContainerNumber,
  TokenUserClaimAttributes,
  TokenDeviceClaimAttributes,
  TokenRestrictedUserClaimAttributes,
  TokenRestrictedDeviceClaimAttributes,
  TokenDeviceGroups,
  TokenRestrictedDeviceGroups,
  TokenSecurityAttributes,
  TokenIsRestricted,
  TokenProcessTrustLevel,
  TokenPrivateNameSpace,
  TokenSingletonAttributes,
  TokenBnoIsolation,
  TokenChildProcessFlags,
  TokenIsLessPrivilegedAppContainer,
  TokenIsSandboxed,
  TokenIsAppSilo,
  TokenLoggingInformation,
  MaxTokenInfoClass
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;

常量

 
TokenUser
值:1
缓冲区接收
TOKEN_USER 包含令牌用户帐户的结构。
TokenGroups
缓冲区接收
TOKEN_GROUPS 结构,其中包含与令牌关联的组帐户。
TokenPrivileges
缓冲区接收
TOKEN_PRIVILEGES 包含令牌特权的结构。
TokenOwner
缓冲区接收
TOKEN_OWNER 结构,其中包含新创建对象的默认所有者 安全标识符 (SID) 。
TokenPrimaryGroup
缓冲区接收
TOKEN_PRIMARY_GROUP 结构,其中包含新创建的对象的默认主组 SID。
TokenDefaultDacl
缓冲区接收
TOKEN_DEFAULT_DACL 结构,其中包含新创建对象的默认 DACL。
TokenSource
缓冲区接收
TOKEN_SOURCE 包含令牌源的结构。 检索 此信息需要TOKEN_QUERY_SOURCE访问权限。
TokenType
缓冲区接收
TOKEN_TYPE值,该值指示令牌是令牌还是模拟令牌
TokenImpersonationLevel
缓冲区接收
SECURITY_IMPERSONATION_LEVEL 指示令牌的模拟级别的值。 如果访问令牌不是 模拟令牌,则函数将失败。
TokenStatistics
缓冲区接收
TOKEN_STATISTICS 包含各种令牌统计信息的结构。
TokenRestrictedSids
缓冲区接收
TOKEN_GROUPS 结构,其中包含在 中限制 SID 的列表
受限令牌
TokenSessionId
缓冲区接收一个 DWORD 值,该值指示与令牌关联的终端服务会话标识符。

如果令牌与终端服务器客户端会话相关联,则会话标识符为非零。

Windows Server 2003 和 Windows XP: 如果令牌与终端服务器控制台会话相关联,则会话标识符为零。

在非终端服务环境中,会话标识符为零。

如果使用 SetTokenInformation 设置 TokenSessionId,则应用程序必须具有“充当操作系统的一部分”权限,并且必须启用该应用程序才能在令牌中设置会话 ID。
TokenGroupsAndPrivileges
缓冲区接收 TOKEN_GROUPS_AND_PRIVILEGES 结构,其中包含用户 SID、组帐户、受限 SID 以及与令牌关联的身份验证 ID。
TokenSessionReference
保留。
TokenSandBoxInert
如果令牌包含 SANDBOX_INERT 标志,则缓冲区将收到非零DWORD 值。
TokenAuditPolicy
保留。
TokenOrigin
缓冲区接收 TOKEN_ORIGIN 值。

如果令牌是使用显式凭据(例如将名称、域和密码传递给 LogonUser 函数)生成的,则 TOKEN_ORIGIN 结构将包含创建它的 登录会话 的 ID。

如果令牌来自网络身份验证,例如调用 AcceptSecurityContext 或调用 LogonUser ,并将 dwLogonType 设置为 LOGON32_LOGON_NETWORKLOGON32_LOGON_NETWORK_CLEARTEXT,则此值将为零。
TokenElevationType
缓冲区接收 一个TOKEN_ELEVATION_TYPE 值,该值指定令牌的提升级别。
TokenLinkedToken
缓冲区接收 TOKEN_LINKED_TOKEN 结构,该结构包含链接到此令牌的另一个令牌的句柄。
TokenElevation
缓冲区接收 一个TOKEN_ELEVATION 结构,该结构指定是否提升令牌。
TokenHasRestrictions
如果已筛选令牌,缓冲区将收到非零的 DWORD 值。
TokenAccessInformation
缓冲区接收 TOKEN_ACCESS_INFORMATION 结构,该结构指定令牌中包含的安全信息。
TokenVirtualizationAllowed
如果令牌允许虚拟化,则缓冲区会收到一个非零的 DWORD 值。
TokenVirtualizationEnabled
如果为令牌启用了虚拟化,则缓冲区会收到一个非零的 DWORD 值。
TokenIntegrityLevel
缓冲区接收指定令牌完整性级别的 TOKEN_MANDATORY_LABEL 结构。
TokenUIAccess
如果令牌设置了 UIAccess 标志,缓冲区将收到非零的 DWORD 值。
TokenMandatoryPolicy
缓冲区接收 TOKEN_MANDATORY_POLICY 结构,该结构指定令牌的强制完整性策略。
TokenLogonSid
缓冲区接收 TOKEN_GROUPS 结构,该结构指定令牌的登录 SID。
TokenIsAppContainer
如果令牌是应用容器令牌,则缓冲区接收非零 的 DWORD 值。 检查 TokenIsAppContainer 并使其返回 0 的任何调用方还应验证调用方令牌是否不是标识级别模拟令牌。 如果当前令牌不是应用容器,而是标识级令牌,则应返回 AccessDenied
TokenCapabilities
缓冲区接收包含与令牌关联的功能的 TOKEN_GROUPS 结构。
TokenAppContainerSid
缓冲区接收包含与令牌关联的 AppContainerSid 的 TOKEN_APPCONTAINER_INFORMATION 结构。 如果令牌未与应用容器关联,则TOKEN_APPCONTAINER_INFORMATION结构的 TokenAppContainer 成员指向 NULL
TokenAppContainerNumber
缓冲区接收包含令牌的应用容器号的 DWORD 值。 对于不是应用容器令牌的令牌,此值为零。
TokenUserClaimAttributes
缓冲区接收 CLAIM_SECURITY_ATTRIBUTES_INFORMATION 结构,其中包含与令牌关联的用户声明。
TokenDeviceClaimAttributes
缓冲区接收包含与令牌关联的设备声明 的 CLAIM_SECURITY_ATTRIBUTES_INFORMATION 结构。
TokenRestrictedUserClaimAttributes
此值是保留的。
TokenRestrictedDeviceClaimAttributes
此值是保留的。
TokenDeviceGroups
缓冲区接收包含与令牌关联的设备组 的 TOKEN_GROUPS 结构。
TokenRestrictedDeviceGroups
缓冲区接收 TOKEN_GROUPS 结构,其中包含与令牌关联的受限设备组。
TokenSecurityAttributes
此值是保留的。
TokenIsRestricted
此值是保留的。
TokenProcessTrustLevel
TokenPrivateNameSpace
TokenSingletonAttributes
TokenBnoIsolation
TokenChildProcessFlags
TokenIsLessPrivilegedAppContainer
指最低特权 AppContainer (LPAC) 。 LPAC 实际上是被 ALL_APPLICATION_PACKAGES SID 忽略的 AppContainer。 有关什么是 AppContainer 的信息,请参阅 适用于旧版应用的 AppContainer

DoNotAddAllApplicationPackagesToRestrictions 中所述,Windows 中的许多资源都带有 ALL_APPLICATION_PACKAGES。 如果希望进程在没有任何资源权限的情况下运行,但显式授予 (,例如,web 浏览器沙盒化子工作进程) ,AppContaoiner 由于 ALL_APPLICATION_PACKAGES而对系统具有过多的访问权限。 这就是 LPAC 进来的地方。 只能通过 API 以命令方式创建 LPAC;不以声明方式通过 appxmanifest.xml
MaxTokenInfoClass
此枚举的最大值。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winnt.h (包括 Windows.h)

另请参阅

访问控制

授权枚举

GetTokenInformation

SECURITY_IMPERSONATION_LEVEL

SetTokenInformation

TOKEN_CONTROL

TOKEN_DEFAULT_DACL

TOKEN_DEVICE_CLAIMS

TOKEN_GROUPS

TOKEN_GROUPS_AND_PRIVILEGES

TOKEN_ORIGIN

TOKEN_OWNER

TOKEN_PRIMARY_GROUP

TOKEN_PRIVILEGES

TOKEN_SOURCE

TOKEN_STATISTICS

TOKEN_TYPE

TOKEN_USER

TOKEN_USER_CLAIMS