【问题标题】:.NET Forms Authentication: How to limit access to resources like pdf files to authenticated users only.NET Forms 身份验证:如何将 pdf 文件等资源的访问权限仅限于经过身份验证的用户
【发布时间】:2010-09-21 07:24:48
【问题描述】:

我正在使用 .net2.0 和 IIS6。

使用 .net 表单身份验证时:如何将 pdf 文件等资源的访问权限仅限于经过身份验证的用户;所以为了访问一个文件说 mysite.com/mydoc.pdf 他们必须首先通过身份验证(通过登录页面)

似乎默认情况下只有 .aspx 页面受到保护。例如。要包含 .html,我必须按照here 中描述的步骤操作。

编辑

感谢大家的快速回复,answer by Keltex 非常适合我,因为我需要快速修复演示系统。

其他答案也很有趣,在处理生产系统时会很有用。

欢迎您发表其他答案

【问题讨论】:

    标签: .net security authentication file iis-6


    【解决方案1】:

    您必须配置 IIS 以处理通配符扩展。因此 .pdf 和 .html 扩展名将被验证。以下是 IIS6 的方法:

    http://professionalaspnet.com/archive/2007/07/27/Configure-IIS-for-Wildcard-Extensions-in-ASP.NET.aspx

    【讨论】:

      【解决方案2】:

      您可以将文件存储在无法通过网络直接访问的目录中,然后用户必须访问一个 ASPX 页面,该页面的 ID 指向他们需要下载的文件。此时,您将文件流式传输出来。

      【讨论】:

      • 对于无法控制添加通配符的托管环境的好答案。
      【解决方案3】:

      创建一个 httphandler,它在将文档流式传输到浏览器之前检查经过身份验证的用户。然后你可以将页面上的链接设置为指向带有文档ID的hander,而不是直接指向文件。

      完成此操作后,文档可以存储在您选择的任何位置附近,可以是文件系统或数据库,甚至可以根据需要编码为 xml 文件。当您想移动存储位置但又不想更新 Web 应用程序中的所有链接时,这很有用。

      有用的链接: http://msdn.microsoft.com/en-us/library/system.web.ihttphandler

      【讨论】:

        【解决方案4】:

        您是否关闭了匿名访问?如果您只有集成 Windows 身份验证,如果您使用这些设置设置 Web 配置,它应该会阻止所有访问

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-28
          • 2016-09-13
          • 2016-01-15
          • 1970-01-01
          • 1970-01-01
          • 2021-03-15
          • 2010-10-07
          • 2011-06-26
          相关资源
          最近更新 更多