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的图片的切换(以数字的形式)
Feb 14 Javascript
Javascript面向对象扩展库代码分享
Mar 27 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
Feb 04 Javascript
JS实现简单的二元方程计算器功能示例
Jan 03 Javascript
数组Array的排序sort方法
Feb 17 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
利用js将ajax获取到的后台数据动态加载至网页中的方法
Aug 08 Javascript
小程序实现列表多个批量倒计时
Jan 29 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
uniapp微信小程序:key失效的解决方法
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
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
JavaScript自定义日期格式化函数详细解析
2014/01/14 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
Python的subprocess模块总结
2014/11/07 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Python3常用内置方法代码实例
2019/11/18 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
Python爬取某平台短视频的方法
2021/02/08 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
电子信息专业自荐书
2014/02/04 职场文书
高三毕业寄语
2014/04/10 职场文书
供电工程专业求职信
2014/08/09 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
汉语拼音教学反思
2016/02/22 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
springboot入门 之profile设置方式
2022/04/04 Java/Android
Android实现图片九宫格
2022/06/28 Java/Android