模仿用户和加密文件

时间:2016-08-04 13:44:05

标签: windows winapi encryption impersonation

我想使用EncryptFile函数加密文件/文件夹,同时冒充其他用户,我让其他用户完全控制文件,但我仍然拒绝访问。

    HANDLE hUser;

    if (LogonUser(L"test", L".", L"123", LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &hUser) == TRUE) {
        ImpersonateLoggedOnUser(hUser);

        if (EncryptFile(dir_to_enc) == FALSE) {
            printf("%d\n", GetLastError()); // I get 5 - Access Denied
        }

        RevertToSelf();

        CloseHandle(hUser);
    }

编辑:

当我将LogonUser的第四个参数从LOGON32_LOGON_NETWORK更改为LOGON32_LOGON_INTERACTIVE时,错误代码更改为87,ERROR_INVALID_PARAMETER。

1 个答案:

答案 0 :(得分:1)

enter image description here我不知道为什么,但当我将dwLogonType更改为LOGON32_LOGON_BATCH时,一切正常!

似乎在我们需要代表用户做某事时使用它。 但其他类型并非直接用于此目的。