1

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

www.MyWeb.com/UserFolder/Img.jpg

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

我怎样才能保护图像?有几个帖子建议编写文件处理程序,但我想将图像保留在服务器上,并且不想在单击图像时发送请求。

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

任何帮助表示赞赏...

4

1 回答 1

1

如果您使用的是 IIS,只需使用表单(或 Windows)身份验证来保护文件夹,这会告诉 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

编辑:

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

让我知道是否有帮助,

于 2013-02-24T08:38:12.177 回答