提示输入CreateFile的凭据

Ben*_*Ben 3 c++ windows winapi

我想设计一个检查文件中某些文本的函数。它采用文件路径,并且该路径可以是UNC路径,例如\ path \ to \ file \ share。

它还将使用当前用户的凭据。我想做的是能够提示用户输入要使用的新凭据。用伪代码

hCreds = NULL;
if (!fAutoLogon) { hCreds = PromptForCredentials(); }

hFile = CreateFile( pszFile, GENERIC_READ, FILE_SHARE_READ ,
                    NULL, OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL, NULL , hCreds);
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 5

使用CredUIPromptForCredentials()CredUIPromptForWindowsCredentials()获取用户的凭据,然后使用LogonUser()ImpersonateLoggedOnUser()模仿该用户,然后CreateFile()使用UNC路径进行调用,最后RevertToSelf()在关闭文件后调用以停止模仿。