相关疑难解决方法(0)

从具有凭据的远程非受信任域访问共享文件(UNC)

我们遇到了一个需要解决的有趣情况,我的搜索已经发现了.因此,我呼吁SO社区寻求帮助.

问题是:我们需要以编程方式访问不在我们域中的共享文件,并且不在远程文件共享/ UNC的可信外部域中.当然,我们需要为远程机器提供凭据.

通常,人们可以通过以下两种方式之一解决此问题:

  1. 将文件共享映射为驱动器并在那时提供凭据.这通常使用NET USE命令或复制的Win32函数完成NET USE.
  2. 使用UNC路径访问文件,就好像远程计算机位于域上一样,并确保在远程计算机上以本地用户身份运行程序运行的帐户(包括密码).基本上利用了当用户尝试访问共享文件时Windows将自动提供当前用户凭据的事实.
  3. 不要使用远程文件共享.使用FTP(或其他方法)传输文件,在本地处理它,然后将其传回.

出于各种各样的原因,我们的安全/网络架构师拒绝了前两种方法.第二种方法显然是一个安全漏洞; 如果远程计算机受到危害,则本地计算机现在处于危险之中.第一种方法是不能令人满意的,因为新安装的驱动器是在程序访问文件期间本地计算机上的其他程序可用的共享资源.尽管这很可能是暂时的,但他们认为这仍然是一个漏洞.

他们对第三个选项开放,但远程网络管理员坚持使用SFTP而不是FTPS,而FtpWebRequest仅支持FTPS.SFTP 更适合防火墙的选项,我可以使用几个库来实现这种方法,但如果可以的话,我宁愿减少我的依赖项.

我在MSDN上搜索了使用远程文件共享的托管或win32方法,但我没有想出任何有用的东西.

所以我问:还有另外一种方法吗?我是否错过了一个超级秘密的win32功能,可以满足我的需求?或者我必须追求选项3的一些变体吗?

c# windows file-sharing unc

144
推荐指数
4
解决办法
18万
查看次数

来自C#的Windows模拟

作为LocalSystem运行的C#程序如何临时模拟另一个用户的登录标识?粗略地说,我有一个Windows服务,我想作为LocalSystem运行,但有时模仿用户XYZ(当使用Windows集成安全性连接到数据库时).

最重要的是:有没有办法在不知道其他用户密码的情况下做到这一点?

注意:如果密码是强制性的,则建议安全地存储密码(c#和/或vbscript).

c# windows impersonation

30
推荐指数
3
解决办法
6万
查看次数

标签 统计

c# ×2

windows ×2

file-sharing ×1

impersonation ×1

unc ×1