我已经浏览了几个论坛(将文件添加到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,我收到了包含所有数据的文件。
答案 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处理程序来检查文件的授权。