asp.net - 阻止下载特定文件

时间:2011-10-20 22:34:12

标签: asp.net security

我有一个网站,我也有一个“UserFiles”目录,受保护以在浏览器中查看其内容:

  

此虚拟目录不允许列出内容。

问题是我这里有一些文件,如果你知道文件的名称,例如:

http://example.com/UserFiles/file.ppt

你可以下载它。

有没有办法从web.config中保护它?或者,如果用户尝试访问此项,请重定向到登录页面?

请注意,我不使用表单身份验证,但自定义登录和Windows身份验证已启用。

谢谢,

更新:我暂时会尝试这一点:http://www.dotnetcurry.com/ShowArticle.aspx?ID=270

2 个答案:

答案 0 :(得分:2)

如果您仍希望通过web.config执行此操作,则web.config文件应在httpHandlers部分下方显示:

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

这将阻止所有.ppt文件。

答案 1 :(得分:0)

如果有人需要下载其中一个文件,您是否只是将其重定向到与您提供的网址类似的网址?

另一种方法是定义一个返回文件的页面,然后您可以将所需的权限检查放入其中。使用此方法还可以将该用户文件夹完全移出Web文件夹,因此这些URL根本不可用。

例如:

C:\UserFiles\
C:\inetpub\MyWebFolder\

您只需确保运行Web应用程序的用户帐户对C:\ UserFiles \文件夹具有适当的权限。