0

假设我有一个网站,一旦用户选择了几个选项,以下(应该)会发生:

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

细节:

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

我该如何设置我的网站来做到这一点?如果我冒充,那么我可能会失去在本地机器上抓取文件的权限......

注意:我也可以通过 FTP 访问远程服务器。如果有一个我可以使用的好的 FTP API,那也可以,但我不想遍历每个文件。

哦,这也是 .NET 1.1。


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

4

2 回答 2

2

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

例如:

  • 在域 XYZ 中有一个用户“filesynch”,密码为“pass”
  • 在域 PDQ 中有一个用户“filesynch”,密码为“pass”
  • 确保用户 PDQ\filesynch 有权访问 PDQ 域中机器上的共享
  • 以 XYZ\filesynch 用户身份在 XYZ 域中的计算机上运行应用程序
  • 通过网络复制文件
于 2008-10-15T19:00:11.567 回答
1

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

如果您可以使用 .NET 2.0,您有更好的选择和更可靠的对象(即:FtpRequest) - 为什么不能使用 .NET 2.0 有什么原因吗?

于 2008-10-15T19:04:06.987 回答