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 相关文章推荐
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 Javascript
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
Feb 04 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
js将滚动条滚动到指定位置的简单实现方法
Jun 25 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
原生js实现自定义滚动条
Jan 20 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python练习程序批量修改文件名
2014/01/16 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
python使用递归的方式建立二叉树
2019/07/03 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python画微信表情符的实例代码
2019/10/09 Python
Python连接字符串过程详解
2020/01/06 Python
Python类的动态绑定实现原理
2020/03/21 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
董事长岗位职责
2013/11/30 职场文书
教师个人自我鉴定
2014/02/08 职场文书
《将心比心》教学反思
2014/04/08 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
win10如何开启ahci模式?win10开启ahci模式详细操作教程
2022/07/23 数码科技