Вход в сеть с токена олицетворения - PullRequest
0 голосов
/ 28 августа 2009

В службе, изображающей клиента (используя ImpersonateNamedPipeClient), я пытаюсь вызвать CreateProcessAsUser. Исполняемое имя файла - это UNC-путь, расположенный на третьем компьютере (ни сервер, ни клиент, подключенный к каналу).

Ошибка вызова с кодом ошибки 5 (ACCES DENIED). Я пытался использовать WNetAddConnection2 для проверки подлинности клиента от клиента (в контексте токена, который будет олицетворен) до того, как сервер вызовет ImpersonateNamedPipeClient, но я все еще получаю ту же ошибку.

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

Ответы [ 2 ]

0 голосов
/ 02 сентября 2009

CreateProcessAsUser () нуждается в основном токене, а не в олицетворенном токене. Вы можете использовать DuplicateTokenEx (), чтобы получить основной токен из олицетворенного токена. Документация для CreateProcessAsUser () даже говорит об этом.

0 голосов
/ 28 августа 2009

Мой Win32 довольно ржавый, так что это может быть выстрел в темноте, но вы пробовали использовать функцию CreateProcessAsUser вместо CreateProcess? Согласно документации MSDN он будет работать на ограниченном токене. Если я правильно помню, токена олицетворения должно быть достаточно.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...