httpHandler 是特别类的一种,可以处理对特定类型文件的请求。实际上甚至可以通过创建自己的处理器来处理对.aspx 页面的请求,将整个页面的处理系统换掉。下面我们就用HttpHandler 来防止图片盗链。

代码:

using System;

using System.Web;

namespace HttpHandlerDemo

{

public class JpgHandler:IHttpHandler

{

#region IHttpHandler 成员

public bool IsReusable

{

get { return true; }

}

public void ProcessRequest(HttpContext context)

{

string fileName = context.Request.FilePath;

if (context.Request.UrlReferrer.Host == null)

{

context.Response.ContentType = "image/JPEG";

context.Response.WriteFile("/no.jpg");

}

else

{

if (context.Request.UrlReferrer.Host.IndexOf("localhost") >= 0)

{

context.Response.ContentType = "image/JPEG";

context.Response.WriteFile(fileName);

}

else

{

context.Response.ContentType = "image/JPEG";

context.Response.WriteFile("/no.jpg");

}

}

}

#endregion

}

}

为了ASP.NET能和HttpHandler 通信,必须实现 IHttpHandler 接口的所有成员。

1、   ProcessRequest() 方法是处理请求并作出响应的地方。

2、  IsReusable 属性告诉 ASP.NET 是否该 HttpHandler 实例能被多个请求复用,或者它是否应每次都创建一个新的实例。通常该属性设为 true 。设为 false 的场景为,希望当某个用户的特定操作在处理器中发生时不希望下一位用户接着使用。

做完了上面的工作,还需要在 web.config 文件中相关部分添加该 HttpHandler 到应用程序中。

格式如下:

<httpHandlers>

<add verb="*" path="*.jpg"type="MyClass,MyDll"/>

</httpHandlers>

Verb 属性表明了包含的请求类型(GET、POST)可以使用通配符 “*” 表示接受所有请求。

Path 描述了请求文件的路径。

Type 指定了实现 IHttpHandler 的类,以及其所在程序集名称。这里要注意的是类名必须是完全名称,即需要包括命名空间。

转载于:https://www.cnblogs.com/China-Dragon/archive/2009/12/04/1617286.html

HttpHandler应用之 防止图片盗链相关推荐

  1. ASP.NET_阻止图片盗链

    什么是图片盗链   一般的浏览现象,其中最重要的一点就是一个完整的页面并不是一次全部传送到客户端的.如果你请求的是一个带有许多图片和其他信息的页面,那么最先的一个HTTP请求被传送回来的是这个页面的文 ...

  2. php如何打开图片的权限,php如何控制用户对图片的访问 PHP禁止图片盗链 php技巧...

    把images目录设置成不充许http访问(把图片目录的:读取.目录浏览 两个权限去掉). 用一个PHP文件,直接用file函数读取这个图片.在这个PHP文件里进行权限控制. apache环境中,在你 ...

  3. php如何控制用户对图片的访问 PHP禁止图片盗链

    本文摘自网络仅供学习只用 本人根据教程总结了一下https://www.imooc.com/video/13412 主要是利用apache的htacess进行控制,,拿什么判断是不是通过本站点访问的呢 ...

  4. 利用Cookie Stuffing让图片盗链者为我们赚钱

    最近没神马好的思路来更新wordpress教程,索性水一贴其他教程~,看到首先魔客吧来解释下什么是cookie stuffing. cookies是通过html中header(头部信息)传递的,除非浏 ...

  5. 服务器文件如何防止盗链,怎么在Apache服务器中实现一个防止图片盗链功能

    怎么在Apache服务器中实现一个防止图片盗链功能 发布时间:2020-12-15 16:06:51 来源:亿速云 阅读:104 作者:Leah 这篇文章将为大家详细讲解有关怎么在Apache服务器中 ...

  6. 【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链 (转)

    你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义Ro ...

  7. Asp.net MVC防止图片盗链的实现方法,通过自定义RouteHandler来操作

    本文告诉你如何在ASP.NET MVC中实现一个自定义RouteHandler来防止其他人盗链你的图片. 首先,我们来回顾一下当一个请求发往ASP.net MVC站点时的情景,IIS收到请求并将请求转 ...

  8. Asp.Net Core 通过中间件防止图片盗链

    一.原理 要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或 ...

  9. 防止图片盗链和资源恶意下载

    这里首先要提一下,IIS是怎么怎么处理http请求的 当服务器接收到一个 Http请求的时候,IIS 首先需要决定如何去处理这个请求(服务器处理一个.htm页面和一个.aspx页面肯定是不一样).那I ...

最新文章

  1. [简单题]换一个思维,代码简洁度就完全变了(Python实现)
  2. 里计算两个数的总和_2个公式,在Excel里面去掉最高分和最低分计算平均值
  3. N551JM集显和独显切换
  4. android webservice 简单应用
  5. 【LeetCode笔记】剑指 Offer 61-. 扑克牌中的顺子 (Java、哈希表)
  6. 去掉窗口_Flink 基础——窗口(Window)理论篇
  7. 用python偷偷给班级群女同学的颜值进行排名,排最后的大姐说开学要打爆我
  8. GDB 命令详细解释
  9. trycatch处理流IO流中的异常
  10. 【函数】fill和fill_n填充之区别
  11. 复杂作业车间调度-单机调度问题研究
  12. HowTo 激活非常规方式安装的正版OEM Vista
  13. 《剑指offer》阅读体会
  14. iccid的PHP规则,中国联通(U)SIM卡ICCID命名规则
  15. Least Crucial Node UVALive - 7456 【】
  16. QML调用Android摄像头,并将每一帧传入C++进行处理(QML 对象,转化为C++对象)
  17. 一个公众号绑定多个商户支付
  18. 目录:名企笔试 + 算法题
  19. 2021年氯化工艺考试及氯化工艺考试内容
  20. 网络准入控制产品发展

热门文章

  1. UNIX再学习 -- 进程间通信之管道
  2. oracle 分析视图,ORACLE 性能视图的分析和使用
  3. 在Google的GPU上永远免费训练您的机器学习模型
  4. 利用docker编译Android源码
  5. IPFS: Merkle DAG数据结构
  6. 不是程序员也能看懂的ZCash零知识证明
  7. mysql、clickhouse读写分离性能测试
  8. cpu风扇一会转一会停_宝宝不能吹电风扇?空调PK电风扇,到底该Pick谁啊啊啊!...
  9. JZOJ 5905. 【NOIP2018模拟10.15】黑暗之魂(darksoul)
  10. python爬取换页_一个可识别翻页的简易Python爬虫程序