动态创建用户并使用DPAPI

时间:2016-01-12 09:16:56

标签: security dpapi

对于某些项目,我需要:

  1. 动态创建本地用户帐户(为此我使用.NET框架中的UserPrincipal类)

  2. 冒充该用户(我写了一些调用本机LogonUser的类(advapi32.dll)

  3. 使用DPAPI加密某些用户数据。我也有一些调用本机CryptProtectData和CryptUnprotectData(crypt32.dll)的类

  4. 这里的问题是,当动态创建用户时,即使我调用LogonUser,也不会创建用户特定的文件夹。

    由于DPAPI将查找这些文件夹,并且文件夹不存在,因此呼叫将失败。

    现在,如果我手动执行用户登录,那么将创建这些文件夹,之后一切都很好。但是,我需要一种自动创建这些文件夹的方法,而无需手动登录。

    有办法吗?

1 个答案:

答案 0 :(得分:0)

我发现userenv.dll中有函数LoadUserProfile。 这就是我想要的。

现在,所有工作都按预期进行。