我正在编写一个程序,需要能够将单个文件上传到SMB共享文件夹。虽然程序将使用用户指定的凭据运行,但程序可能需要使用内置于程序中的不同凭据访问SMB文件夹。我可以使用WNetAddConnection2
,但这允许用户在文件夹上传时访问共享。我无法使用标准I / O访问共享,因为我需要使用指定的凭据访问它,而不是通过登录用户的权限访问。
是否有一种简单的方法可以将单个文件上传到具有指定凭据的SMB共享,而无需通过WNetAddConnection2
或net use
创建半永久性连接。
答案 0 :(得分:-1)
WNetAddConnection2()
旨在将本地名称映射到远程位置,例如将UNC路径映射到本地驱动器号。您可以直接忘记映射并直接访问UNC路径,然后让上传线程通过LogonUser()
和ImpersonateLoggedOnUser()
使用模拟来处理凭据。
否则,您可以将上传逻辑移动到后台服务中,后台服务在自己的帐户中运行,该帐户与登录用户分开。