На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

DuplicateTokenEx



[New - Windows NT]

The DuplicateTokenEx function creates a new access token that duplicates an existing token. This function can create either a primary token or an impersonation token.

BOOL DuplicateTokenEx(

HANDLE hExistingToken, // handle to token to duplicate
DWORD dwDesiredAccess, // access rights of new token
LPSECURITY_ATTRIBUTES lpTokenAttributes, // security attributes of the new token
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, // impersonation level of new token
TOKEN_TYPE TokenType, // primary or impersonation token
PHANDLE phNewToken // handle to duplicated token
);


Parameters

hExistingToken

Identifies an access token opened with TOKEN_DUPLICATE access.

dwDesiredAccess

Specifies the requested access rights for the new token. The DuplicateTokenEx function compares the requested access rights with the existing token's discretionary access-control list (ACL) to determine which rights are granted or denied. To request the same access rights as the existing token, specify zero. To request all access rights that are valid for the caller, specify MAXIMUM_ALLOWED. Otherwise, specify a combination of the following access rights.

Value Meaning
TOKEN_ADJUST_DEFAULT Required to change the default ACL, primary group, or owner of an access token.
TOKEN_ADJUST_GROUPS Required to change the groups specified in an access token.
TOKEN_ADJUST_PRIVILEGES Required to change the privileges specified in an access token.
TOKEN_ALL_ACCESS Combines the STANDARD_RIGHTS_REQUIRED standard access rights and all individual access rights for tokens.
TOKEN_ASSIGN_PRIMARY Required to attach a primary token to a process in addition to the SE_CREATE_TOKEN_NAME privilege.
TOKEN_DUPLICATE Required to duplicate an access token.
TOKEN_EXECUTE Combines the STANDARD_RIGHTS_EXECUTE standard access rights and the TOKEN_IMPERSONATE access right.
TOKEN_IMPERSONATE Required to attach an impersonation access token to a process.
TOKEN_QUERY Required to query the contents of an access token.
TOKEN_QUERY_SOURCE Required to query the source of an access token.
TOKEN_READ Combines the STANDARD_RIGHTS_READ standard access rights and the TOKEN_QUERY access right.
TOKEN_WRITE Combines the STANDARD_RIGHTS_WRITE standard access rights and the TOKEN_ADJUST_PRIVILEGES, TOKEN_ADJUST_GROUPS, and TOKEN_ADJUST_DEFAULT access rights.


lpTokenAttributes

Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new token and determines whether child processes can inherit the token. If lpTokenAttributes is NULL, the token gets a default security descriptor and the handle cannot be inherited.

ImpersonationLevel

Specifies a value from the SECURITY_IMPERSONATION_LEVEL enumeration that indicates the impersonation level of the new token.

TokenType

Specifies one of the following values from the TOKEN_TYPE enumeration.

Value Meaning
TokenPrimary The new token is a primary token that you can use in the CreateProcessAsUser function.
TokenImpersonation The new token is an impersonation token.


phNewToken

Pointer to a HANDLE variable that receives the new token.



Return Values

If the function succeeds, the return value is a nonzero value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The DuplicateTokenEx function allows you to create a primary token that you can use in the CreateProcessAsUser function. This allows a server application that is impersonating a client to create a process that has the security context of the client. Note that the DuplicateToken function can create only impersonation tokens, which are not valid for CreateProcessAsUser.
The following is a typical scenario for using DuplicateTokenEx to create a primary token. A server application creates a thread that calls one of the impersonation functions, such as ImpersonateNamedPipeClient, to impersonate a client. The impersonating thread then calls the OpenThreadToken function to get its own token, which is an impersonation token that has the security context of the client. The thread specifies this impersonation token in a call to DuplicateTokenEx, specifying the TokenPrimary flag. DuplicateTokenEx creates a primary token that has the security context of the client.

When you have finished using the new token, call the CloseHandle function to close the token handle.

See Also

CloseHandle, CreateProcessAsUser, DdeImpersonateClient, DuplicateToken, ImpersonateNamedPipeClient, OpenThreadToken, RevertToSelf, RpcImpersonateClient, SECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

DuplicateTokenEx



[Новый - Windows NT]

Функция DuplicateTokenEx создает новый признак доступа, который дублирует существующий признак. Эта функция может создать или первичный признак или признак маскировки.

BOOL DuplicateTokenEx(

РУЧКА hExistingToken, // оперируется в признак, чтобы дублировать DWORD dwDesiredAccess, // права доступа нового признака LPSECURITY_ATTRIBUTES lpTokenAttributes, // атрибутов безопасности нового признака SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, // уровня маскировки нового признака TOKEN_TYPE TokenType, // первичного или признака маскировки PHANDLE phNewToken // ручка на продублировавшее признак
);


Параметры

hExistingToken

Идентифицирует признак доступа открытый доступом TOKEN_DUPLICATE.

dwDesiredAccess

Определяет запрошенные права доступа о новом признаке. Функция DuplicateTokenEx сравнивает запрошенные права доступа с существующим символическим дискреционным иметь доступ к-управляющему списку (ACL), чтобы определять, что каким правам предоставляют или запрещен. Для того, чтобы запрашивать те же права доступа как существующий признак, определите нуль. Для того, чтобы запрашивать все права доступа, которые будут в силе для вызывающего оператора, определите MAXIMUM_ALLOWED. В противном случае, определять комбинацию прав доступа следующего.

Значение Величины
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.


lpTokenAttributes

Указатель в структуру SECURITY_ATTRIBUTES, которая определяет дескриптор безопасности для нового признака и определяет независимо ребенка, процессы могут унаследовать признак. Если lpTokenAttributes НЕДЕЙСТВИТЕЛЕН, признак получает по умолчанию дескриптор безопасности и ручка не может быть унаследована.

ImpersonationLevel

Определяет величину из перечисления SECURITY_IMPERSONATION_LEVEL, которое указывает уровень маскировки нового признака.

TokenType

Определяет одно из следующего величин из перечисления TOKEN_TYPE.

Значение Величины
TokenPrimary НОВЫЙ признак является первичным признаком, который Вы можете использовать в функции CreateProcessAsUser.
TokenImpersonation НОВЫЙ признак является признаком маскировки.


phNewToken

Указатель в переменную РУЧКИ, которая получает новый признак.



Обратные Величины

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

Замечания

Функция DuplicateTokenEx позволяет Вам, чтобы создавать первичный признак, который Вы можете использовать в функции CreateProcessAsUser. Это допускает приложение сервера, которое подражает клиенту, чтобы создавать процесс, который имеет контекст безопасности клиента. Отметьте, что функция DuplicateToken может создать признаки только маскировки, которые недействительны для CreateProcessAsUser.
Следующее является типичным сценарием для использования DuplicateTokenEx, чтобы создавать первичный признак. Приложение сервера создает резьбу, которая называет одну из функций маскировки, как например, ImpersonateNamedPipeClient, чтобы подражать клиенту. Подражающая резьба затем называет функцию OpenThreadToken, чтобы получать свой собственный признак, который - признак маскировки, который имеет контекст безопасности клиента. Резьба определяет этот признак маскировки на вызове в DuplicateTokenEx, определение флага TokenPrimary. DuplicateTokenEx СОЗДАЕТ первичный признак, который имеет контекст безопасности клиента.

Когда Вы завершили используя новый признак, назовите функцию CloseHandle, чтобы закрывать символическую ручку.

Смотри Также

CloseHandle, CreateProcessAsUser, DdeImpersonateClient, DuplicateToken, ImpersonateNamedPipeClient, OpenThreadToken, RevertToSelf, RpcImpersonateClient, SECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz