ASP.NET无法使文件夹无法访问

时间:2017-04-03 19:02:43

标签: c# asp.net vb.net

我有一个C#Webform应用程序。

它里面包含一个Report文件夹,其中包含一些pdf文件。

我的应用程序会根据需要显示这些报告。

但我不希望有人通过输入直接网址

来访问这些内容

例如:www.abc.com/Reports/a.pdf

我在报告文件夹中创建了以下Web.config:

<configuration>
<system.web>
            <authorization>
                <deny users="?" />                
            </authorization>
</system.web>
</configuration>

但是,测试时我可以直接访问pdf文件。

同样根据业务规则,我无法使用表单身份验证。

1 个答案:

答案 0 :(得分:3)

<system.web>控制ASP.NET管道的配置,而不是IIS。如果您在IIS下运行,则不会为静态文件请求调用ASP.NET,例如您提到的PDF文件。

要拒绝这些请求,请改用<system.webServer>。请参阅此质量检查:How to make IIS7 stop serving a folder?

<configuration>
   <system.webServer>
        <security>
            <requestFiltering>
               <hiddenSegments>
                   <add segment="My_Directory" />
               </hiddenSegments>
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>

请注意<system.webServer>需要IIS7或更高版本(Windows Server 2008)。如果您运行的是IIS6(Windows Server 2003或Windows XP),那么这将无效。