将文件上载到SMB共享而不允许用户访问

时间:2014-08-28 23:01:47

标签: c++ winapi smb

我正在编写一个程序,需要能够将单个文件上传到SMB共享文件夹。虽然程序将使用用户指定的凭据运行,但程序可能需要使用内置于程序中的不同凭据访问SMB文件夹。我可以使用WNetAddConnection2,但这允许用户在文件夹上传时访问共享。我无法使用标准I / O访问共享,因为我需要使用指定的凭据访问它,而不是通过登录用户的权限访问。

是否有一种简单的方法可以将单个文件上传到具有指定凭据的SMB共享,​​而无需通过WNetAddConnection2net use创建半永久性连接。

1 个答案:

答案 0 :(得分:-1)

WNetAddConnection2()旨在将本地名称映射到远程位置,例如将UNC路径映射到本地驱动器号。您可以直接忘记映射并直接访问UNC路径,然后让上传线程通过LogonUser()ImpersonateLoggedOnUser()使用模拟来处理凭据。

否则,您可以将上传逻辑移动到后台服务中,后台服务在自己的帐户中运行,该帐户与登录用户分开。