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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
Javascript动态创建div的方法
Feb 09 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
JavaScript实现翻页功能(附效果图)
Feb 16 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
Aug 23 Javascript
vue路由守卫及路由守卫无限循环问题详析
Sep 05 Javascript
javascript实现点亮灯泡特效示例
Oct 15 Javascript
vue路由的配置和页面切换详解
Sep 09 Javascript
微信小程序实现多张图片上传功能
Nov 18 Javascript
利用JavaScript写一个简单计算器
Nov 27 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作的文本留言本的例子(三)
2006/10/09 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
javascript事件模型介绍
2016/05/31 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python爬取网页转换为PDF文件
2018/06/07 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
在Python中输入一个以空格为间隔的数组方法
2018/11/13 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python中安装django模块的方法
2020/03/12 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
C语言开发工程师测试题
2016/12/20 面试题
会计系毕业生求职信
2014/05/28 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
工程部岗位职责范本
2015/04/11 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python