网站上的一些文件不希望用户访问,可以通过下面的方式简单实现。不需写代码(在IIS6下试验过)。
第一步,在IIS中实现映射。
哪些文件需要特殊处理。
通俗的将就是将哪种类型的文件交给特定的工厂来处理。通过这种方式可以实现自定义的请求方式。
请求到达IIS,然后IIS将请求交给我们设定的工厂处理。
对于aspx文件,默认是aspnet_isapi.dll由来处理的。
假如我们不希望用户通过浏览器直接看到网站上的xml文件,直接返回404。
首先需要在IIS中添加新的映射,将xml文件交由aspnet_isapi.dll来处理。当然,我们可以自己实现这样的功能。
如上图,点击配置按钮。
第二步,在web.config文件注册
<system.web>
<httpHandlers>
<add verb="*" path="*.xml" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
</system.web>
这样就可以实现,当通过浏览器访问网站下的xml文件时,提示404.
补充说明
每一个文件夹都可以有自己的web.config文件,这点非常灵活,这种做法在MVC中比较普遍。