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