相关疑难解决方法(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万
查看次数

How can I use impersonation to manipulate files/directories on a remote machine with UNC?

I need to download files from a server to a shared drive directory, creating the directory if it doesn't exist. There are a few things making this more complicated:

  1. I do not have write access (nor does the account that will run the job in UAT/Prod) to the shared drive directory.
  2. The Service account that does have write access does not have any privileges anywhere but the shared drive directory.

I attempt to impersonate, as so:

class Impersonation
{
    const …
Run Code Online (Sandbox Code Playgroud)

c# impersonation unc remote-access file-manipulation

7
推荐指数
1
解决办法
167
查看次数

Asp.net访问网络共享

我有一个ASP.NET应用程序,需要将文件保存到网络共享(Samba).

共享需要用户名和密码才能连接.

我已将持久驱动器映射到共享,并在以DOMAIN\WEBUSER身份登录服务器时提供登录凭据.

我更改了托管我的应用程序的虚拟目录,以使用DOMAIN\WEBUSER帐户而不是IWAM帐户.

但是,用户仍然无法看到映射的驱动器.

我错过了什么?

asp.net security iis permissions

1
推荐指数
1
解决办法
8716
查看次数