禁用对IIS 10上ASP.MVC 5中的文件的直接URL访问

时间:2018-04-10 06:33:25

标签: c# asp.net asp.net-mvc-5 iis-10

我已经浏览了几个论坛(将文件添加到App_Data,编写Handler),我一直在寻找解决方案,但到目前为止还没有成功。我在每个主.htaccess目录中都使用PHP,它禁止直接访问地址和文件,但我不知道如何在用C#编写的ASP.MVC 5应用程序中设置它。

在.htaccess中我用这个:

<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order deny,allow
    Deny from all
</IfModule>

是否有任何选项只允许某些目录直接在C#项目中直接爬网(例如CSS的内容或Scripts for JS)?或者直接在IIS 10上?

在我的IIS上我禁用了目录浏览,但是例如,当我将url直接写入我的XML文件(我的XML DB)时 https //:web.test.com/Def/db.xml,我收到了包含所有数据的文件。

2 个答案:

答案 0 :(得分:1)

我的解决方案:

我只需通过 IIS 10->网站-> NameOfWebSite-> RequestFiltering->隐藏的细分->添加隐藏的细分

此操作将以下代码块添加到Web.config中:

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

答案 1 :(得分:0)

默认情况下,IIS仅在ASP.NET资源(如ASP.NET网页,Web服务等)的请求进入时调用ASP.NET运行时。请求静态内容,如图像,CSS IIS无需ASP.NET运行时即可检索文件,JavaScript文件,PDF文件,ZIP文件等。 在ASP.NET中您可以编写自定义HTTP处理程序来检查文件的授权。