【问题标题】:ASP.NET Unauthorized access when downloading from fTP从 ftP 下载时 ASP.NET 未经授权的访问
【发布时间】:2010-08-31 16:02:21
【问题描述】:

我的代码可以在这里找到c# asp.net FTP Error 我试图从 FTP 服务器下载一个文件,当我尝试下载它时,它说我没有访问权限 我整个早上都在谷歌上搜索并且没有任何运气。我去了指定的文件夹并添加了具有完全权限的所有人,希望我错过了一个用户并且这不起作用。我尝试为自己、匿名用户、网络服务和我找到的其他一些用户授予完全权限。我尝试过使用

<identity impersonate="true" />

<identity impersonate="true" userName="myfullusername" password="mypassword"/>

我仍然没有运气,我得到的完整错误是:

System.UnauthorizedAccessException:对路径“C:\Users\myname\Documents”的访问被拒绝。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs , String msgPath, Boolean bFromProxy, Boolean useLongPath)

非常感谢我得到的任何帮助谢谢大家。

【问题讨论】:

  • 该路径是本地路径还是远程文件的路径?您可以使用 FTP 客户端手动下载文件吗?
  • 路径是本地路径,我可以用FileZilla下载

标签: c# asp.net file-io ftp


【解决方案1】:

我怀疑该错误是由于从文件夹路径创建文件流所致。使用调试器检查您构造 FileStream 的行,以查看传入的内容。

这是我在我的机器上运行的示例:

// "Access to the path 'C:\users\myid\Documents' is denied."
var nostream = new System.IO.FileStream(@"C:\users\myid\Documents", FileMode.Create);

// OK
var okstream = new System.IO.FileStream(@"C:\users\myid\Documents\myfile.txt", FileMode.Create);

顺便说一句,您可能已经知道,使用System.IO.Path,您可以方便地组合路径,而不必担心斜线的方向,或者左侧是否有斜线。

Path.Combine(@"C:\users\myid\Documents", "myfile.txt");

我希望这会有所帮助。祝你好运!

【讨论】:

  • 这是正确的再次感谢您的帮助 2x 现在连续 kbrimington。 :)
  • @h34dhun73r - 我的荣幸。祝你好运!
【解决方案2】:

当您不是用户时,在用户配置文件中执行操作通常有点棘手 - 有一些安全设置可以保护它,而不是授予所有人访问权限。是否有任何理由需要它位于您的 Documents 文件夹中,或者它可以放在磁盘上的其他位置。

【讨论】:

  • 很抱歉,如果不清楚它是否在我的用户文件夹中,但它不起作用的原因是我的 fileStream 格式不正确。我向所有用户授予了访问权限,以查看 VS 是否在冒充我不在的用户(来自谷歌)并且这不起作用。然而,这两个问题都会返回相同的错误,所以它可能有点模棱两可,这会让大多数用谷歌搜索错误的人感到困惑。
猜你喜欢
  • 1970-01-01
  • 2015-03-05
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
  • 2022-06-24
  • 2016-08-12
  • 2014-07-01
  • 1970-01-01
相关资源
最近更新 更多