使用VB.net进行文件下载和AD检查

时间:2012-08-14 07:58:58

标签: asp.net vb.net download ftpwebrequest

感谢您的帮助。

我有一个ftp站点和web工具(vb.net)来管理站点中的文件。

ftp站点和工具使用AD组(Intranet)来检查权限。

某些目录受到限制,有些目录不受限制。

在我正在使用的下载工具上:

    My.Computer.Network.DownloadFile(urlPath, userProfileLocal & fileNameLab.Value, domainNameHid.Value, "", True, 60000, True, FileIO.UICancelOption.DoNothing)

urlPath 可能等于ftp://ftp.net/foo/bar/myfile.zip

对于 userProfileLocal 我正在尝试使用Dim userProfileLocal As String = Environment.GetEnvironmentVariable("USERPROFILE") & "\documents"

fileNameLab.Value 预先填充在隐藏输入中,并且是文件名

domainNameHid.Value 已预先填充,看起来像DOMAIN\jimmmy

我保持密码值为空,因为我希望使用AD。

我发现this表示我应该使用ICredentials代替用户名和密码,但我很难实现ICredentials部分,甚至不确定这是否正确。

我认为其余部分已被考虑在内。

我一直收到错误Access to the path 'C:\Windows\system32\config\systemprofile' is denied.

首先,这不是我想要的路径。我希望GetEnvironmentVariable("USERPROFILE") & "\documents"能够创建文档文件夹的路径......有更好的方法吗?为什么不能仅提示您浏览某个位置或使用默认位置?

第二次,......好吧,第二次与我如何没有权限下载到我自己的磁盘有关。但如果首先可以解决,那么我认为这也是。

我认为我的AD要求正在破坏应该是一项简单任务的工作。有人能指出我正确的方向来获取ICredentials的例子(如果那是我需要的)或者让我知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

我只是想回应,让那些正在寻找的人知道我找到了答案。

我没有使用上面的代码,而是使用了以下内容:

    Dim mydocsdir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Response.AppendHeader("Content-Disposition", "attachment; filename=" & fileNameLab.Value)
            Response.Clear()
            Response.WriteFile(Path.Combine(mydocsdir, fileNameLab.Value))

这就像一个魅力。

我要特别感谢Darin Dimitrov在另一篇文章中提供答案。他的回答实际上是我认为可能的简单答案......但我的VB.Net经验虽然现在很少,但仍在增长。