如何使用 ASP.NET 将文件从一台计算机移动到另一台计算机?
-
03-07-2019 - |
题
假设我有一个网站,一旦用户选择了几个选项,(应该)会发生以下情况:
- 从本地计算机中获取文件(在目录中) - 到目前为止工作正常
- 将它们移至远程服务器 - 这是我需要帮助的地方
细节:
- 将通过 UNC 路径 (\servername\xyz) 找到远程服务器
- 我可以访问用户名/密码来访问该 UNC 路径,但由于我们位于不同的域中并且我无法控制 IT 的决策,因此我不能让单个用户在两个域中都具有权限。
我该如何设置我的网站来做到这一点?如果我冒充,那么我可能会失去在本地计算机上抓取文件的权限......
笔记:我还可以通过 FTP 访问远程服务器。如果有一个好的 FTP API 可供我使用,那也可以,但我不想遍历每个文件。
哦,这也是.NET 1.1。
这是对相关问题的建议:需要模拟用户访问网络资源、Asp.Net 帐户
解决方案
我以前做过这个跨域。您所需要的只是用户名和密码相同,即使它们位于不同的域中,这也会起作用。需要确保的是您的 .NET 应用程序正在以此用户身份运行。
例如:
- 在域 XYZ 中有一个用户“filesynch”,密码“pass”
- 在域 PDQ 中,有一个用户“filesynch”,密码为“pass”
- 确保用户 PDQ\filesynch 有权在 PDQ 域中的计算机上共享
- 以 XYZ\filesynch 用户身份在 XYZ 域中的计算机上运行应用程序
- 通过网络复制文件
其他提示
这可以通过 unc 或 ftp 来完成。对于较早的(unc),您可以使用 File.Copy(source, target) - 对于后者,您可以使用几种技术。如果您将用户想要的内容存储在远程站点上的计算机上,您可以使用 Web 客户端 (System.Net.WebClient) 通过任何可访问的 url 下载文件(即:在 IIS 中打开文件浏览)。
如果您可以使用 .NET 2.0,您就有更好的选择和更可靠的对象(即:FtpRequest) - 有什么原因不能使用.NET 2.0吗?
不隶属于 StackOverflow