HttpHandler实现防盗链

 

namespace MyHandler
{
    public class Jpg : IHttpHandler
    {
        public bool IsReusable
        {
            get
            {
                return true;


            }
        }


        public void ProcessRequest(HttpContext context)
        {
            //判断是否是本地引用,如果是则返回给客户端正确的文件
            if (context.Request.UrlReferrer == null)
            {
                return;
            }
            if (context.Request.UrlReferrer.Host == "localhost")
            {


                context.Response.Expires = 0;//设置客户端缓冲中文件过期时间为0,即立即过期。
                context.Response.Clear();//清空服务器端为此会话开辟的输出缓存
     
                //context.Response.ContentType = "image/jpeg";
                context.Response.WriteFile(context.Request.PhysicalPath);//将请求文件写入到服务器端为此会话开辟的输出缓存中
 
                context.Response.End();//将服务器端为此会话开辟的输出缓存中的信息传送到客户端
            }
            else
            {
                //非法连接 可显示广告
                //context.Response.WriteFile("ad.jpg");
            }


        }
    }
}


在站点的web.config配置


  <httpHandlers>
   <add verb="*" path="*.jpg" type="MyHandler.Jpg,MyHandler"/>
  </httpHandlers>


在IIS映射.flv的对应执行程序路径为:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值