使用out文件处理程序保护静态图像/文件

本文关键字:文件 图像 静态 处理 out 使用 程序保护 | 更新日期: 2023-09-27 18:00:41

我在asp.net中有一个网站,用户可以在该网站上登录和上传图像/文件/Pdf等。我将文件/图像保存在服务器上,因此图像上传时间保持较低。

www.MyWeb.com/UserFolder/Img.jpg

我担心的是,当任何用户登录并查看任何图像时,图像都会保留在浏览器缓存中。因此,即使用户退出,任何人都可以访问图像Still。通过击打www.MyWeb.com/UserFolder/Img.jpg

如何保护图像?有几篇帖子建议写一个文件处理程序,但我想把图像保存在服务器上,不想在点击图像时发送请求。

如何保护缓存在浏览器中的静态内容?

任何帮助都将不胜感激。。。

使用out文件处理程序保护静态图像/文件

如果您使用IIS,只需使用表单(或窗口)身份验证来保护文件夹,并且告诉IIS,只要用户通过身份验证,它就只能提供文件。http://technet.microsoft.com/en-us/library/cc771077(v=ws.10).aspx

建议可能不是文件处理程序,而是HTTP处理程序,但对于您当前的需求来说,这有点太复杂了。

对于缓存,您始终可以选择在服务器的web响应的标头中设置缓存。http://msdn.microsoft.com/en-us/library/06bh14hk(v=vs.100).aspx

编辑:

好吧,对于你在评论中解释的escenario,我猜你没有使用asp.net引擎,你只是将IIS中的图片文件夹作为web应用程序发布。这就是为什么您对渲染没有任何控制。您要做的是创建一个处理图片的网页,然后发送图片的参数,例如:picture.aspx?id=picture1,例如,在加载页面中,您检查用户是否被允许查看该图片(因为他已登录,所以您已经知道该帐户),因此如果用户被允许,您只需制作一个Response.write来提供图片,否则您可以说:Response.write("您现在可以看到这个")。这个想法是你需要一个中间人,这就是你使用asp.net的原因。

如果有帮助,请告诉我,