3

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

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

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

编辑

感谢大家的快速回复,Keltex 的回答对我来说非常有效,因为我需要快速修复演示系统。

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

更欢迎您发布其他答案

4

4 回答 4

4

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

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

于 2008-11-07T15:34:43.317 回答
3

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

于 2008-11-07T15:38:36.007 回答
2

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

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

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

于 2008-11-07T16:35:16.017 回答
0

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

于 2008-11-07T15:41:38.247 回答