我在asp.net上有网站,用户可以登录和上传图像/文件/ Pdf等。我在服务器上保留文件/图像,因此图像上传时间仍然很低。
www.MyWeb.com/UserFolder/Img.jpg
我关注的是,当任何用户登录并查看任何图像时,图像将保留在浏览器缓存中。即使用户退出,任何人都可以访问图像静止。通过击中 www.MyWeb.com/UserFolder/Img.jpg
我如何保护图像?有几个帖子建议写一个文件处理程序,但我想保留服务器上的图像,并且不希望在点击图像时发送请求。
如何保护在浏览器中缓存的静态内容?
感谢任何帮助...
答案 0 :(得分:1)
如果您使用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的原因。
如果有帮助,请告诉我,