2013-02-24 77 views
1

我有网站在asp.net上用户可以登录和上传图像/文件/ PDF等我保持文件/图像在服务器上,所以图像上传时间保持低。保护静态图像/文件与出文件处理程序

www.MyWeb.com/UserFolder/Img.jpg

我担心的是,当以往任何用户签到并查看任何图像时,图像浏览器缓存中保留。所以即使用户注销,任何人都可以访问图像静止。击中 www.MyWeb.com/UserFolder/Img.jpg

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

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

任何帮助表示赞赏...

回答

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

编辑:

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

让我知道,如果有帮助,

+0

感谢快速回复,即使用户进行身份验证,他将能够击出了一些其他用户的www.MyWeb.com/UserFolder/Img.jpg。 如何将特定图像与特定用户关联?所以谁曾经击中www.MyWeb.com/UserFolder/Img.jpg看不到它。但是,如果一个非常particulare用户登录并击中www.MyWeb.com/UserFolder/Img.jpg。他应该能够做到这一点... – Imran 2013-02-24 09:02:18

+0

我更新了回复,让我知道它是否可以帮助你 – 2013-02-24 09:11:24

+0

你是对的,图片在文件夹中,我只是发布整个网络,包括文件夹。当您点击图像时,我有你的想法来验证用户,并且The Picture.aspx会对用户进行验证。但是我担心,如果某位用户只是打开浏览器标签,并写入www.MyWeb.com/Images/UserFolder/Img.jpg并点击它。他没有经过picture.aspx?id = 1,但他正在以独立用户请求的方式进行。是可以处理这种情况?何时用户不点击图像,只是简单地写URL访问静态图像? – Imran 2013-02-24 09:34:19

相关问题