delphi – 通过提供凭证进行程序化登录
发布时间:2020-12-15 09:25:52 所属栏目:大数据 来源:网络整理
导读:考虑 Windows用户A(具有管理权限)和B(受限访问权限). 也是位于服务器上的数据文件夹,只有用户A才能访问该数据文件夹. 我面临的挑战是通过用户B登录窗口,并通过我的Delphi应用程序尝试以编程方式提供用户A的凭据来访问数据文件夹. 是否有API功能可以实现这一
考虑
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |