正着手准备做个图片共享网站,考虑到图片的防盗链,剥离出了BlogEngine的ImageHandler,并进行简单地修改。用来做隐藏图片的真实地址和防盗链。

原文地址:http://blog.moozi.net/archives/2008/10/12/use-httphandler-in-csharp-to-hide-the-true-address-of-the-picture/ 

 

使用HttpHandler隐藏图片真实地址,轻松实现防盗链    public class ImageHandler : IHttpHandler
    }

备注:不太明白这里的private static void OnServing(string file)private static void OnServed(string file)private static void OnBadRequest(string file)这些方法以及事件的作用,还请网友们不吝赐教。

如果要实现防盗链,只需要加入对Request.UrlReferrer.Host的判断就OK了。

在Web.config中加入:

使用HttpHandler隐藏图片真实地址,轻松实现防盗链      <httpHandlers>
使用HttpHandler隐藏图片真实地址,轻松实现防盗链        
<add verb="*" path="image.axd" type="MzMobile.Web.HttpHandlers.ImageHandler, MzMobile.Web" validate="false"/>
使用HttpHandler隐藏图片真实地址,轻松实现防盗链      
</httpHandlers>

这样,在App_Data文件夹中创建"Picture"目录,并在目录下存放图片文件,这样就可以用image.axd?picture=PictureName (PictureName指你的图片名称)来访问图片了。

BlogEngine有太多值得学习的地方了,好东西啊!

相关文章: