假设您在IIS上有一个公共ASP.NET(或经典ASP)应用程序,其脚本/页面需要写入或更新位于Web发布文件夹树中的特定文件夹中的文件。
1)什么是正确的方法来设置?
我主要关心的是,我想让ASP / ASP.NET应用程序写入一个文件夹,但我不希望普通的http用户能够把文件放入它。
首先让我开始说,我是一个相当大的信徒,几乎总是有一个比磁盘写东西更好的解决scheme。 无论是将数据写入数据库,还是提供Web服务,写入磁盘都应该是最后的select。
这就是说有一些有效的原因,但这是有点棘手,并依赖于为什么应用程序需要写出文件。
将数据写在代码运行的地方是绝对需要的。 允许最终用户写入ASPX / ASP引擎可以解释/执行代码的path是不好的,原因很明显。
其他一些影响这个事情的是:
大概押注在stackoverflow.com上查看…
最佳做法是将该文件夹放在文档根目录的外部,并从文件系统读取您的应用程序。 否则,将该文件夹设置为除ASP [.NET]用户以外的只读文件夹,并使用应用程序的内部授权控制写入特权。
App_Data文件夹
为了提高ASP.NET应用程序使用的数据的安全性,已经为ASP.NET应用程序添加了名为App_Data的新子文件夹。 存储在App_Data文件夹中的文件不会响应直接的HTTP请求而返回,这使App_Data文件夹成为存储在您的应用程序中的数据的推荐位置,其中包括.mdf(SQL Server Express Edition),.mdb(Microsoft Access)或XML文件。 请注意,使用App_Data文件夹存储应用程序数据时,应用程序的身份对App_Data文件夹具有读写权限。
ASP.NET数据访问中的新增function
默认情况下,App_Data是可写但不可读的。 服务器似乎抵制任何改变这一点的企图。 因此,最好创build一个全新的文件夹,并将其上的权限更改为不可执行,可读写和可写。