网站防盗链就是那么简单

时间:2022-01-30 12:42:38

第一步 : 实现 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 >