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 迭代方法
Jan 21 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
Feb 13 Javascript
AngularJS实现表格的增删改查(仅限前端)
Jul 04 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
Jul 03 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
详解JS预解析原理
Jun 16 Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
Jul 22 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
全国中波电台频率表
2020/03/11 无线电
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
js兼容的placeholder属性详解
2013/08/18 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
python模块常用用法实例详解
2019/10/17 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
我的中国梦演讲稿400字
2014/08/19 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
高中生旷课检讨书
2014/10/08 职场文书
小学老师对学生的评语
2014/12/29 职场文书
邹越演讲观后感
2015/06/15 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS