我们遇到了一个需要解决的有趣情况,但我的搜索结果为零。因此,我向 SO 社区寻求帮助。
问题是这样的:我们需要以编程方式访问不在我们域中的共享文件,并且通过远程文件共享/UNC 不在受信任的外部域中。当然,我们需要向远程计算机提供凭据。
通常,可以通过以下两种方式之一解决此问题:
NET USE
命令或复制 NET USE
的 Win32 函数来完成。 由于各种原因,我们的安全/网络架构师拒绝了前两种方法。第二种方法显然是一个安全漏洞;如果远程计算机受到威胁,本地计算机现在也面临风险。第一种方法并不令人满意,因为新安装的驱动器是本地计算机上的其他程序在程序访问文件期间可用的共享资源。尽管这很有可能是暂时的,但在他们看来这仍然是一个漏洞。
他们对第三种选择持开放态度,但远程网络管理员坚持使用 SFTP 而不是 FTPS,而 FtpWebRequest 仅支持 FTPS。 SFTP 是对防火墙更友好的选项,我可以使用几个库来实现这种方法,但如果可以的话,我更愿意减少依赖。 我在 MSDN 中搜索了使用远程文件共享的托管或 win32 方法,但我没有找到任何有用的信息。
所以我问:还有其他方法吗?我是否错过了一个可以实现我想要的功能的超级秘密 win32 函数?或者我必须追求选项 3 的某种变体吗?