asp.net HttpHandler实现图片防盗链


Posted in Javascript onNovember 09, 2009

Step.1:创建文件 CustomHandler.cs,代码如下:

using System; 
using System.Web; namespace CustomHandler{ 
public class JpgHandler : IHttpHandler{ 
public void ProcessRequest(HttpContext context){ 
// 获取文件服务器端物理路径 
string FileName = context.Server.MapPath(context.Request.FilePath); 
// 如果UrlReferrer为空,则显示一张默认的禁止盗链的图片 
if (context.Request.UrlReferrer.Host == null){ 
context.Response.ContentType = "image/JPEG"; 
context.Response.WriteFile("/error.jpg"); 
}else{ 
// 如果 UrlReferrer中不包含自己站点主机域名,则显示一张默认的禁止盗链的图片 
if (context.Request.UrlReferrer.Host.IndexOf("yourdomain.com") > 0){ 
context.Response.ContentType = "image/JPEG"; 
context.Response.WriteFile(FileName); 
}else{ 
context.Response.ContentType = "image/JPEG"; 
context.Response.WriteFile("/error.jpg"); 
} 
} 
} 
public bool IsReusable{ 
get{ return true; } 
} 
} 
}

Step.2 编译这个文件
csc /t:library /r:System.Web.dll CustomHandler.cs

Step.3 将编译好的 CustomHandler.dll 拷贝到站点的 Bin 目录下。
Step.4 在Web.Config 中注册这个Handler。
<system.web> 
<httpHandlers> 
<add path="*.jpg" verb="*" type="CustomHandler.JpgHandler, CustomHandler" /> 
</httpHandlers> 
</system.web>

OK,诸位可以按步骤自行测试一下,这里就不赘述了。
Javascript 相关文章推荐
用javascript控制iframe滚动的代码
Apr 10 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
详解Bootstrap按钮
Jan 04 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
javascript加载xml 并解析各节点的值(实现方法)
Oct 12 Javascript
JavaScript仿微信打飞机游戏
Jul 05 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 Javascript
为javascript添加String.Format方法
Aug 11 #Javascript
prototype 中文参数乱码解决方案
Nov 09 #Javascript
jQuery 常见学习网站与参考书
Nov 09 #Javascript
Javascript select下拉框操作常用方法
Nov 09 #Javascript
页面中js执行顺序
Nov 09 #Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
Nov 09 #Javascript
Jquery作者John Resig自己封装的javascript 常用函数
Nov 09 #Javascript
You might like
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
原生小程序封装跑马灯效果
2020/10/21 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
python搜索指定目录的方法
2015/04/29 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
详解python分布式进程
2018/10/08 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
python实现的Iou与Giou代码
2020/01/18 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
2020/11/09 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
新郎婚宴答谢词
2014/01/19 职场文书
班班通项目实施方案
2014/02/25 职场文书
病媒生物防治方案
2014/05/13 职场文书
禁毒宣传标语
2014/06/19 职场文书
教师一帮一活动总结
2014/07/08 职场文书
家长学校教学计划
2015/01/19 职场文书
个人求职信格式范文
2015/03/20 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书