1

我的网站中有一个文件夹,其中包含另一个文件夹,其中包含许多文件夹,这些文件夹都包含各种文档:pdf、word 文档、txt 文件、excel 文档、图像等。我想阻止用户通过浏览器导航到这些文档中的任何一个. 我怎样才能做到这一点?我正在使用 MVC3。

4

3 回答 3

3

您可以将目录结构移动到App_Data特殊文件夹中。此文件夹不可直接访问。然后简单地编写一个控制器动作,它给出一个 id 将文件流式传输到客户端。然后使用 Authorize 属性装饰控制器操作,以确保只有经过身份验证的用户才能访问它们。

于 2012-05-01T16:51:29.227 回答
1

目录浏览只会阻止用户查看文件夹内的文档列表,但不会阻止用户输入指向现有文档的有效 URL 并查看它。如果这是您需要的,您需要拒绝所有用户访问该文件夹。

<location path="folder">
<system.web>
<authorization>
  <deny users="*"/> 
</authorization>
</system.web>
</location>
于 2012-05-01T16:52:31.083 回答
1

如果您不能在 IIS 中轻松完成,请在 Web.config 中完成,您可以:

<configuration>
  <location path="Secured">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>
</configuration>

[编辑]

我看到您想让内容无法访问,而不仅仅是阻止目录列表。在这种情况下,请执行 Icarus 答案中的其他步骤。

于 2012-05-01T16:52:54.157 回答