首页 > 解决方案 > 禁止直接浏览文件

问题描述

在 asp.net 网络表单站点中,我想禁止用户直接浏览存储在目录中的文件。例如,我将 PDF 存储在一个目录中,如果用户知道路径,他们可以简单地在浏览器地址栏中键入它并拉出 PDF。

寻找有关如何停止这种情况的想法,除非他们使用与目录名称匹配的特定 ID 登录。

任何想法表示赞赏。

标签: c#asp.netiis

解决方案


除非他们以特定 ID 登录,否则如何禁用目录浏览

我假设这是 ASP.NET Web 窗体。

如果您使用 ASP.NET Membership Provider 或 Form Authentication,您可以在 web.config 中为所有用户和所有文件配置授权。

但是,如果用户和文件不断变化,上述方法将不起作用。

这变得很复杂。我将用户及其授权文件存储在数据库等持久存储中。然后将实际文件存储在文件App_Data夹(或私有 blob 存储)中。IIS 不会为存储在App_Data文件夹中的文件提供服务。然后每个文件请求都通过通用处理程序,例如FileHandler.ashx?filename=sample.pdf.


推荐阅读