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_NETWORK 或 LOGON32_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) |