powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Пользователь - он определяется для процесса, или для потока?
7 сообщений из 7, страница 1 из 1
Пользователь - он определяется для процесса, или для потока?
    #38699261
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

такой вопрос - если я:
1. вызову LogonUser() и получу Token,
2. вызову CreateThread(suspended) и передам потоку этот token: SetThreadToken()
3. запущу поток
- у меня поток будет работать в контексте другого пользователя? Смутило, что в msdn про impersonation именно для процесса пишут.
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699284
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, сам нашёл разъяснение :
msdnthe impersonating thread has both a primary access token and an impersonation token. The impersonation token represents the client's security context, and this access token is the one that is used for access checks during impersonation
Т.е. поток, получается, действует от текущего пользователя с правами (security context) другого.
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699441
неТолик1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrCat,

Анатолий в отпуске, остальные лыка не вяжут.
так и так не помогли-бы.
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699668
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот люди. Чуть стоило Анатолию отлучиться, сразу набрались.

Ну, чтобы никого не обманывать, закончу тему всё же проверенным результатом:

Во-первых, тут пишут, что LogonUser даёт полноценную авторизацию:
The LogonUser function provides another method for impersonating a user. If your process has the SE_TCB_NAME privilege, it can specify the authentication credentials of a user in a call to LogonUser. If the logon operation is successful, the function returns a primary access token that represents the specified user . You can use this primary token in a call to CreateProcessAsUser to create a process that runs in the security context of the user. Note that in this case, the new process would have access to the network because you supplied the password in the LogonUser call.

Во-вторых, накидал программку, которая выдаёт сначала имя текущего пользователя ( GetUserName ), потом зовёт LogonUser - CreateThread - SetThreadToken, затем уже внутри потока снова выдаёт имя текущего пользователя. Так вот в потоке выдаётся имя пользователя, который передан в LogonUser, а не того, который запустил процесс.

Т.е. поток выполняется не только с правами , но и от имени другого пользователя .
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699670
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrCatТ.е. поток выполняется не только с правами , но и от имени другого пользователя .
Логично.
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699804
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странная тема. Идите вы все... к Дж.Рихтеру.
Там где про Process и Threads.
...
Рейтинг: 0 / 0
Пользователь - он определяется для процесса, или для потока?
    #38699826
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рихтер - знатный дядька, слава ему! Но ответов на мои вопросы у него в книжке нету. Он пользователей не рассматривает и LogonUser не упоминает. А жаль.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Пользователь - он определяется для процесса, или для потока?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]