网站防盗链就是那么简单

第一步 : 实现 IHttpHandler 接口

    

namespace WebHotlinkProtection
{

    public class HotlinkProtectionHandler:IHttpHandler
    {
        public bool IsReusable
        {
            get { throw new NotImplementedException(); }
        }

        public void ProcessRequest(HttpContext context)
        {
            //监听是否本站发起的请求
           if (!context.Request.UrlReferrer.Host.StartsWith("localhost"))
            {
                context.Response.Expires = 0;
                context.Response.Clear();
                context.Response.ContentType = "image/jpg";
                //输出防盗链图片
                context.Response.WriteFile(context.Request.PhysicalApplicationPath + "\\no.jpg");
                context.Response.End();
            }
            else
           { 
                context.Response.Expires = 0;
                context.Response.Clear();
                context.Response.ContentType = "image/jpg";
                context.Response.WriteFile(context.Request.PhysicalPath);
                context.Response.End();
            }
        }
    }
}

第二部:配置web.config

 

      <httpHandlers>
          <add verb="*" path="*.jpg" type="WebHotlinkProtection.HotlinkProtectionHandler,WebHotlinkProtection"/>
      </httpHandlers>
posted @ 2012-04-29 15:05  Rhythmk  阅读(421)  评论(0编辑  收藏  举报
Rhythmk 个人笔记