我已经经历了几个论坛(将文件添加到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时,我得到了包含所有数据的文件。
MySolution:
我只需通过IIS 10设置我的文件夹 - >站点 - > NameOfWebSite - > RequestFiltering - >隐藏段 - >添加隐藏段
此操作将此块代码添加到Web.config:
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="Def" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
默认情况下,IIS仅在请求ASP.NET资源(如ASP.NET网页,Web服务等)时调用ASP.NET运行时。请求静态内容,如图像,CSS文件,JavaScript文件,PDF文件,ZIP文件等由IIS检索,无需ASP.NET运行时的参与。在ASP.NET中您可以编写自定义HTTP处理程序来检查文件的授权。