如何使用ASP.NET将文件从一台计算机移动到另一台计算机?

时间:2008-10-15 18:55:17

标签: .net asp.net ftp impersonation

假设我有一个网站,一旦用户选择了几个选项,就会发生以下情况:

  • 从本地计算机中获取文件(在目录中) - 到目前为止工作正常
  • 将它们移动到远程服务器 - 这是我需要帮助的地方

详细说明:

  • 远程服务器将通过UNC路径(\ servername \ xyz)
  • 找到
  • 我可以访问用户名/密码来访问该UNC路径,但由于我们位于不同的域而我无法控制IT的决策,因此我不能让一个用户在这两个域中拥有权限。 / LI>

如何设置我的网站来执行此操作?如果我冒充,那么我可能会失去在本地计算机上抓取文件的权限......

注意:我也有远程服务器的FTP访问权限。如果我可以使用一个很好的FTP API,那也可以,但我不想迭代每个文件。

哦,这也是.NET 1.1。


这是对相关问题的建议: Need to Impersonate user forAccessing Network resource, Asp.Net Account

2 个答案:

答案 0 :(得分:2)

我以前做过这个跨领域。您所需要的只是用户名和密码相同,这将起作用,即使它们位于不同的域中。要确保的是,您的.NET应用程序正在以此用户身份运行。

例如:

  • 在域XYZ中,用户“filesynch”的密码为“pass”
  • 在域PDQ中,用户“filesynch”的密码为“pass”
  • 确保用户PDQ \ filesynch有权在PDQ域中的机器上共享
  • 在XYZ域中的计算机上以XYZ \ filesynch用户身份运行应用程序
  • 通过网络复制文件

答案 1 :(得分:1)

这可以使用unc或ftp来完成。对于早期(unc),您可以使用File.Copy(source,target) - 对于后者,您可以使用几种技术。如果您在远程站点上存储用户想要的机器,您可以使用webclient(System.Net.WebClient)通过任何可访问的URL下载文件(即:在IIS中打开文件浏览)。

如果你可以使用.NET 2.0,你可以选择更可靠的对象(即:FtpRequest) - 为什么你不能使用.NET 2.0会引起共鸣?