如何防止访问ASP.NET中的文件夹

时间:2014-09-03 09:30:56

标签: c# asp.net

我有一个网站,其中包含一些客户无法直接访问的数据。我把它放在文件夹中

root
|-Confidential
  |-Test.txt
  |- web.confid
  |- _PageStart.cshtml
web.config

..我想要做的是,拒绝用户对整个文件夹的访问权限,以便直接访问的所有内容都会被重定向到某个地方以显示简单的404。

我甚至尝试使用web.config文件,因为Stack Overflow中有一个解决方案,用于创建一个新的web.config文件,然后将其写入。

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <allow users="admin" />
        <deny users="*" />
      </authorization>
    </system.web>
</configuration>

但它对我不起作用。然后我尝试使用另一种方法替换文件的名称,并将其写为 _Test.txt 。但我想,ASP.NET只控制.cshtml文件和其他ASP.NET文件以这种方式隐藏。

应用的另一种方法是,通过创建一个名为 _PageStart.cshtml 的新页面然后编写此代码来将错误代码设置为404

@{
    Response.StatusCode = 404;
}

..但又来了!该页面可以直接访问。经过所有这些方法,我来到这里,找到解决这个问题的方法。如何在ASP.NET中拒绝访问所有文件或整个文件夹。

enter image description here

2 个答案:

答案 0 :(得分:2)

将此添加到您的<sysyem.webserver>部分

<security>
  <requestFiltering>
    <hiddenSegments>
      <add segment="folderName"/>
    </hiddenSegments>
  </requestFiltering>
</security>

答案 1 :(得分:1)

  

我的网站包含一些客户无法直接访问的数据。

实现此目的的最简单方法是将数据放在App_Data文件夹中。这就是它的用途。