C# 不允许直接浏览文件
在asp.net web表单网站中,我不允许用户直接浏览存储在目录中的文件。例如,我将PDF存储在一个目录中,如果用户知道路径,他们只需在浏览器地址栏中键入该路径并调出PDF即可 正在寻找有关如何停止此操作的想法,除非他们使用与目录名匹配的特定id登录C# 不允许直接浏览文件,c#,asp.net,iis,C#,Asp.net,Iis,在asp.net web表单网站中,我不允许用户直接浏览存储在目录中的文件。例如,我将PDF存储在一个目录中,如果用户知道路径,他们只需在浏览器地址栏中键入该路径并调出PDF即可 正在寻找有关如何停止此操作的想法,除非他们使用与目录名匹配的特定id登录 欢迎任何想法。在IIS中,选择您的网站,甚至是特定的应用程序 然后,在右侧,双击“目录浏览”可以禁用/启用目录浏览。在web.config文件中,添加以下内容: <configuration> <location path=
欢迎任何想法。在IIS中,选择您的网站,甚至是特定的应用程序
然后,在右侧,双击“目录浏览”可以禁用/启用目录浏览。在web.config文件中,添加以下内容:
<configuration>
<location path="Secured">
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
</location>
</configuration>
如何禁用目录浏览,除非它们是在
特定id
我假设这是ASP.NET Web表单
如果使用ASP.NET成员资格提供程序或表单身份验证,则可以在web.config中为所有用户和所有文件进行配置
然而,如果用户和文件不断变化,上述方法将不起作用
这就变得复杂了。我将用户及其授权文件存储在持久性存储(如数据库)中。然后将实际文件存储在
App\u Data
文件夹(或专用blob存储)中。IIS不会提供存储在App\u Data
文件夹中的文件。然后,每个文件请求都经过通用处理程序,例如FileHandler.ashx?filename=sample.pdf
如果有一种方法可以检测.pdf是否打开,可以调用c#code进行检查。这是自定义处理程序吗?我不熟悉。我所做的只是不将这些文件存储在网站的根目录下,而是完全存储在外部,并使用(WebForms)或文件结果(MVC)将文件交付给允许的用户。