asp.net – 如何限制指定文件类型的下载

前端之家收集整理的这篇文章主要介绍了asp.net – 如何限制指定文件类型的下载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想限制我的网络应用程序,以便无法下载/显示.txt文件.
这是我可以在我的web.config文件中设置的东西吗?

我在配置文件中尝试了这个:

<system.web>
    <httpHandlers>
        <add verb="*" path="*.txt" type="System.Web.HttpForbiddenHandler" />
    </httpHandlers>
</system.web>

……但它没有效果.我使用的是IIS7,应用程序是.NET3.5,这可能与它有关吗?我知道这实际上适用于.NEt 1.0 1.1和2.0.

我在文档中注意到了这个(add httpHandlers),需求部分:

Microsoft Internet Information Services (IIS) version 5.0,5.1,or 6.0
The .NET Framework version 1.0,1.1,or 2.0
Microsoft Visual Studio 2003 or Visual Studio 2005

…表示.NET 3和IIS7不支持此…

在IIS7中指定了哪里?

解决方法

请查看此MS支持文章,了解如何实现此目的: HOW TO: Use ASP.NET to Protect File Types.

它涉及设置IIS以将这些请求转发到ASP.NET,然后设置web.config以阻止所需的文件类型,例如:(这适用于您的开发机器和IIS7之前 – 请务必在下面看到)

<system.web>
    <httpHandlers>
        <add verb="*" path="*.ini" type="System.Web.HttpForbiddenHandler" />
    </httpHandlers>
</system.web>

根据httpHandlers Element page,从.NET 2.0开始默认禁止以下扩展(.ini不是其中之一):

* .asax,* .ascx,*.master,* .skin,* .browser,*.sitemap,*.config,*.cs,* .csproj,*.vb,* .vbproj,* .webinfo,*. licx,* .resx,* .resources,* .mdb,* .vjsproj,* .java,*.jsl,* .ldb,* .dsdgm,* .ssdgm,* .lsad,* .ssmap,* .cd,* .dsprototype,* .lsaprototype,* .sdm,* .sdmDocument,* .mdf,* .ldf

编辑:这适用于IIS 7.0之前的IIS版本. IIS 7.0添加了一种额外的操作模式,称为集成模式(ASP.NET的默认模式),它需要将处理程序放在< system.webServer> /< handlers>中.而不是< system.web> /< httpHandlers>.我在此页面添加了一些更多信息和链接到@ awe的答案,请查看更多详细信息.

重要!对于IIS 7.0或更高版本

如编辑中所指定,您需要放置< add>元素在不同的地方,规则也需要一个名称 – 如果你没有指定名称,你将在重新启动时得到500内部错误

<system.webServer>
        <handlers>
            <add name="IgnoreIni" verb="*" path="*.ini" type="System.Web.HttpForbiddenHandler" />
        </handlers>
    </system.webServer>

猜你在找的asp.Net相关文章