如何在Delphi 10.1 Berlin中安全地访问“共享文件夹”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Delphi 10.1 Berlin中安全地访问“共享文件夹”?相关的知识,希望对你有一定的参考价值。

我们的应用程序使用Shared Folder进行导入或导出数据操作。许多工作站从应用程序访问这些共享位置。

我们需要保护共享文件夹以及从应用程序访问此共享文件夹的过程。

我们尝试编写一个示例应用程序,尝试使用Network Service帐户连接到共享文件夹,但我们没有这样做。同样与Standard Domain User合作。

代码片段:

Result := LogonUser(PChar(User), PChar(Domain),
    PChar(Password), LogonType, LogonProvider, TokenHandle);

  if Result then
  begin
    Result := ImpersonateLoggedOnUser(TokenHandle);
  end;

任何人都有关于保护此工作流程的任何其他建议?

更新:我尝试过使用Network Service帐户的可能性,但这也失败了。

>runas /user:"NT AUTHORITYNetwork Service" "C:Windowssystem32
otepad.exe"
Enter the password for NT AUTHORITYNetwork Service:
RUNAS ERROR: Unable to acquire user password
答案

你需要使用windows api函数WNetAddConnection2来添加共享。请参阅链接页面底部的示例代码。添加后,您可以访问该共享文件夹。

访问WNetCancelConnection2后不要忘记删除连接。

以上是关于如何在Delphi 10.1 Berlin中安全地访问“共享文件夹”?的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 10.1 Berlin Starter Edition

Delphi 10.1 Berlin 与 Delphi 10 Seattle 共存

Delphi 10.1 Berlin 与 Delphi 10 Seattle 共存

BaaS with Kinvey and Delphi 10.1 Berlin

SQLDirect 6.5 Source (Delphi 5-10.1 Berlin)

Delphi XE10.1 引用计数(Delphi XE10.1 Berlin终于增加了对接口的Weak, UnSafe的支持)