2016-01-12 8 views
0

Для какого-либо проекта мне нужно:Создание пользователя Динамически и с помощью DPAPI

  1. Динамически создать локальную учетную запись пользователя (для этого я использую UserPrincipal класс от платформы .NET)

  2. Impersonate к тому, что пользователь (я написал несколько классов, которые называют родную LogonUser (advapi32.dll)

  3. Использованием DPAPI для шифрования некоторых пользовательских данных. у меня также есть несколько классов, которые называют родную CryptProtectData и CryptUnprotectData (Crypt32.dll)

Проблема в том, что при динамическом создании пользователя пользовательские папки не создаются даже при вызове LogonUser.

Поскольку DPAPI будет искать эти папки, а папок там нет, вызов завершится неудачно.

Теперь, если я вручную выполним вход пользователя в систему, эти папки будут созданы, и после этого все будет хорошо. Но мне нужен способ создания этих папок автоматически, без ручного входа в систему.

Есть ли способ сделать это?

ответ

0

Я узнал, что в userenv.dll есть функция LoadUserProfile. Это то, что я искал.

Теперь все работает должным образом.

 Смежные вопросы

  • Нет связанных вопросов^_^