Поделиться через


перечисление 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 структура, содержащая идентификатор безопасности основной группы по умолчанию для вновь созданных объектов.
TokenDefaultDacl
Буфер получает
TOKEN_DEFAULT_DACL структуру, содержащую daCL по умолчанию для вновь созданных объектов.
TokenSource
Буфер получает
TOKEN_SOURCE структуры, содержащей источник маркера. TOKEN_QUERY_SOURCE для получения этих сведений требуется доступ.
TokenType
Буфер получает
TOKEN_TYPE значение, указывающее, является ли маркер основным маркером или маркером олицетворения.
TokenImpersonationLevel
Буфер получает
SECURITY_IMPERSONATION_LEVEL значение, указывающее уровень олицетворения маркера. Если маркер доступа не является маркером олицетворения, функция завершается ошибкой.
TokenStatistics
Буфер получает
TOKEN_STATISTICS структуры, содержащей различные статистические данные маркеров.
TokenRestrictedSids
Буфер получает
TOKEN_GROUPS структуры, содержащей список ограничивающих идентификаторов безопасности в
ограниченный маркер.
TokenSessionId
Буфер получает значение DWORD , указывающее идентификатор сеанса служб терминалов, связанный с маркером.

Если маркер связан с сеансом клиента сервера терминалов, идентификатор сеанса будет ненулевым.

Windows Server 2003 и Windows XP: Если маркер связан с сеансом консоли сервера терминалов, идентификатор сеанса равен нулю.

В среде служб терминалов идентификатор сеанса равен нулю.

Если для TokenSessionId задано значение SetTokenInformation, приложение должно иметь привилегию "Действие как часть операционной системы " и приложение должно быть включено, чтобы задать идентификатор сеанса в маркере.
TokenGroupsAndPrivileges
Буфер получает TOKEN_GROUPS_AND_PRIVILEGES структуру, содержащую идентификатор безопасности пользователя, учетные записи групп, идентификаторы безопасности с ограниченным доступом и идентификатор проверки подлинности, связанный с маркером.
TokenSessionReference
Зарезервировано.
TokenSandBoxInert
Буфер получает значение DWORD , не равное нулю, если маркер включает флаг SANDBOX_INERT .
TokenAuditPolicy
Зарезервировано.
TokenOrigin
Буфер получает значение TOKEN_ORIGIN .

Если маркер является результатом входа, который использовал явные учетные данные, например передачу имени, домена и пароля в функцию LogonUser , то структура TOKEN_ORIGIN будет содержать идентификатор сеанса входа , который его создал.

Если маркер является результатом проверки подлинности сети, например вызова 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
Буфер получает значение DWORD , которое не равно нулю, если для маркера установлен флаг UIAccess.
TokenMandatoryPolicy
Буфер получает структуру TOKEN_MANDATORY_POLICY , указывающую обязательную политику целостности маркера.
TokenLogonSid
Буфер получает структуру TOKEN_GROUPS , указывающую идентификатор безопасности входа маркера.
TokenIsAppContainer
Буфер получает значение DWORD , которое не равно нулю, если маркер является маркером контейнера приложения. Все вызывающие лица, которые проверка TokenIsAppContainer и возвращают 0, также должны убедиться, что маркер вызывающей стороны не является маркером олицетворения уровня идентификации. Если текущий маркер не является контейнером приложения, а маркером уровня удостоверения, необходимо вернуть AccessDenied.
TokenCapabilities
Буфер получает TOKEN_GROUPS структуру, содержащую возможности, связанные с маркером.
TokenAppContainerSid
Буфер получает TOKEN_APPCONTAINER_INFORMATION структуру, содержащую AppContainerSid, связанный с токеном. Если маркер не связан с контейнером приложения, элемент TokenAppContainer структуры TOKEN_APPCONTAINER_INFORMATION указывает на 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 фактически является AppContainer, который игнорируется ALL_APPLICATION_PACKAGES SID. Сведения о том, что такое AppContainer, см. в статье AppContainer для устаревших приложений.

Многие ресурсы в Windows являются ACL с ALL_APPLICATION_PACKAGES, как описано в разделе DoNotAddAllApplicationPackagesToRestrictions. В сценариях, где требуется, чтобы процесс выполнялся без прав на какие-либо ресурсы, кроме тех, которые вы явно предоставляете (например, в песочнице веб-браузера дочернего рабочего процесса), AppContaoiner имеет слишком большой доступ к системе из-за ALL_APPLICATION_PACKAGES. Вот где LPAC приходит. LPAC можно создать только императивно с помощью API; не декларативно через 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