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

такой вопрос - если я:
1. вызову LogonUser() и получу Token,
2. вызову CreateThread(suspended) и передам потоку этот token: SetThreadToken()
3. запущу поток
- у меня поток будет работать в контексте другого пользователя? Смутило, что в msdn про impersonation именно для процесса пишут.
...
Рейтинг: 0 / 0
17.07.2014, 15:45
    #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
17.07.2014, 16:57
    #38699441
неТолик1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользователь - он определяется для процесса, или для потока?
MrCat,

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


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