感谢您对此的帮助。
我有一个 ftp 站点和 Web 工具(vb.net)来管理站点中的文件。
ftp 站点和工具使用 AD 组(内部网)来检查权限。
有些目录受到限制,有些则没有那么多。
在我正在使用的下载工具上:
My.Computer.Network.DownloadFile(urlPath, userProfileLocal & fileNameLab.Value, domainNameHid.Value, "", True, 60000, True, FileIO.UICancelOption.DoNothing)
urlPath 可能等于 ftp://ftp.net/foo/bar/myfile.zip
对于用户配置文件本地我正在尝试使用Dim userProfileLocal As String = Environment.GetEnvironmentVariable("USERPROFILE") & "documents"
文件名实验室.值预填充在隐藏的输入中,是文件名
domainNameHid.Value 是预先填充的,看起来像DOMAINjimmmy
我将密码值保留为空,因为我希望使用 AD。
我发现这说明我应该使用 ICredentials 代替用户名和密码,但我正在实现 ICredentials 部分,甚至不确定这是否正确。
其余的我认为是有道理的。
我不断收到错误Access to the path 'C:Windowssystem32configsystemprofile' is denied.
首先,这不是我要走的道路。我希望GetEnvironmentVariable("USERPROFILE") & "documents"
能创建文档文件夹的路径......有没有更好的方法可以做到这一点?为什么不能只提示浏览到某个位置或使用默认位置?
第二,...好吧,第二个与我没有perms下载到我自己的磁盘有关。但如果第一个可以解决,那么我认为这也会。
我认为我的AD要求正在为本应是一项简单的任务而搞砸工作。有人可以为我的ICredentials示例指出正确的方向(如果这是我需要的),或者让我知道我在这里做错了什么?
我只是想回应,让那些正在寻找的人知道我找到了答案。
我最终使用了以下内容,而不是上面使用的代码:
Dim mydocsdir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Response.AppendHeader("Content-Disposition", "attachment; filename=" & fileNameLab.Value)
Response.Clear()
Response.WriteFile(Path.Combine(mydocsdir, fileNameLab.Value))
这就像一个魅力。
我需要特别感谢达林·迪米特洛夫,他在另一篇文章中提供了答案。他的回答其实是我认为可能是的简单答案......但我的 VB.Net 经验虽然现在很少,但仍然在增长。