Возможно ли выдавать себя за пользователя без предоставления имени пользователя/пароля? В принципе, я хотел бы получить CSIDL_LOCAL_APPDATA
для пользователя (а не текущего) с помощью функции ShGetFolderPath()
. Все, что у меня есть, это SID для этого пользователя.Возможно ли выдавать себя за пользователя без его регистрации?
8
A
ответ
6
Нет, вы должны вызвать Win32 API Функция LogonUser, чтобы получить токен учетной записи Windows, чтобы затем выдать себя.
7
Вы можете выдавать себя за пользователя без предоставления пароля, вызывая ZwCreateToken. См. Функцию CreatePureUserToken в этой статье: GUI-Based RunAsEx Для этого вы должны работать как администратор (или LocalSystem).
Другой способ - использовать пакеты субатентификации Windows. Это позволяет вам переопределить встроенную аутентификацию Windows и позволить LogonUser преуспеть, даже если пароль не был предоставлен. См. Это KB article.
Хм, это объясняет, почему я не могу заставить его работать правильно ... Есть ли другой способ получить этот путь? Благодарю. – dennisV 2008-09-26 01:34:06