Joh*_*hny 4 delphi delphi-2010 delphi-6
考虑Windows用户A(具有管理权限)和B(受限访问权限).也是位于服务器上的数据文件夹,只有用户A才能访问该数据文件夹.
我面临的挑战是通过用户B登录窗口,并通过我的Delphi应用程序尝试以编程方式提供用户A的凭据来访问数据文件夹.
是否有API功能可以实现这一目标?
你也可以模拟登录的用户访问数据的文件夹,使用LogonUser,ImpersonateLoggedOnUser和RevertToSelf功能.
试试这个样本
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils;
function ConnectAs(const lpszUsername, lpszPassword: string): Boolean;
var
hToken : THandle;
begin
Result := LogonUser(PChar(lpszUsername), nil, PChar(lpszPassword), LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken);
if Result then
Result := ImpersonateLoggedOnUser(hToken)
else
RaiseLastOSError;
end;
begin
try
ConnectAs('Admin','Password');
//do something here
//terminates the impersonation
RevertToSelf;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
readln;
end.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |