我正在使用.net2.0和IIS6。
使用.net表单身份验证时:如何限制仅对经过身份验证的用户访问pdf文件等资源;所以为了访问一个文件,请说mysite.com/mydoc.pdf,他们必须先进行身份验证(通过登录页面)
默认情况下,只有.aspx页面才受到保护。例如。要包含.html,我必须按照here所述的步骤进行操作。
修改
感谢各位回复非常快,answer by Keltex对我来说很完美,因为我需要快速修复演示系统。
其他答案也很有趣,在处理生产系统时它们会很有用。
欢迎您发布其他答案
答案 0 :(得分:4)
您必须配置IIS以处理通配符扩展。因此.pdf& .html扩展名将被验证。这是IIS6的方法:
答案 1 :(得分:3)
您可以将文件存储在无法通过Web直接访问的目录中,然后用户必须访问一个ASPX页面,其中ID指向需要下载的文件。此时,您将文件流出来。
答案 2 :(得分:2)
创建一个httphandler,在将文档流式传输到浏览器之前检查经过身份验证的用户。然后,您可以设置页面上的链接,使用文档ID而不是文件直接指向处理者。
完成此操作后,文档可以存储在您选择的任何位置附近,即文件系统或数据库,甚至可以根据需要编码到xml文件中。当您想要移动存储位置但又不想更新Web应用程序中的所有链接时,这非常有用。
有用的链接: http://msdn.microsoft.com/en-us/library/system.web.ihttphandler
答案 3 :(得分:0)
您是否关闭了匿名访问?如果你只有集成Windows身份验证,如果你使用这些设置设置你的网络配置,它应该阻止所有访问