ASP.NET Core 2.0 只在服务器端访问本地文件夹而不暴露给网络

ASP.NET Core 2.0 Access local folder only on server side without exposing to web

我一直在绕着这个房子转,现在只见树木不见森林,所以想就在不影响安全的情况下实现的最佳方式征求意见。

我们有一些静态文件存储在网络服务器的本地文件夹中(例如,当前 c:\staticfiles),我们的 ASP.Net Core 2.0 应用程序需要能够访问这些文件,但只能从服务器访问边。我不想将它们放在 www(或任何其他外部可见的地方)下,因为这会使它们公开访问。

根据我们当前的设置,尽管我们已经向 c:\staticfiles 应用了权限(甚至 "Everyone" 作为测试),但我们从服务器端代码中得到了“Access to the path is denied”异常文件夹。

非常感谢您的想法。 谢谢。

为此,在 ASP.NET 框架中,调用 "Server.MapPath" 用于映射到文件系统上的文件。在.net core中,这个API是不能用的。

在.net core中,有两个概念

  • 内容根目录,用于二进制文件和私有文件
  • web 根目录,这是用于 public 文件的,这些文件将通过 URL.
  • 公开

默认情况下,这两个位置都指向同一个文件夹。

您可以使用IHostingEnvironment interface OR the hosting.json file更改内容根目录或网站根目录的位置。

如果您需要参考,这些链接是内联的。

堆栈溢出应该可以帮到你

希望对您有所帮助。