asp.net HttpHandler实现图片防盗链

 更新时间:2009年11月09日 18:57:21   作者:  
这个例子来自于《Maximizing ASP.NET Real World, Object-Oriented Development》一书, 需要的朋友可以参考下。
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,诸位可以按步骤自行测试一下,这里就不赘述了。

相关文章

  • JS正则表达式学习之贪婪和非贪婪模式实例总结

    JS正则表达式学习之贪婪和非贪婪模式实例总结

    这篇文章主要介绍了JS正则表达式学习之贪婪和非贪婪模式用法,结合实例形式总结分析了JS正则表达式中贪婪模式与非贪婪模式的具体功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-12-12
  • Javascript 正则表达式校验数字的简单实例

    Javascript 正则表达式校验数字的简单实例

    下面小编就为大家带来一篇Javascript 正则表达式校验数字的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • js取得html iframe中的元素和变量值

    js取得html iframe中的元素和变量值

    想要取得iframe中的元素和js变量值,不能用$(document).ready()方法,而是要用$("#iframeId").load()方法
    2014-06-06
  • Nuxt默认模板、默认布局和自定义错误页面的实现

    Nuxt默认模板、默认布局和自定义错误页面的实现

    这篇文章主要介绍了Nuxt默认模板、默认布局和自定义错误页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • JS实现网页表格自动变大缩小的方法

    JS实现网页表格自动变大缩小的方法

    这篇文章主要介绍了JS实现网页表格自动变大缩小的方法,实例分析了javascript操作表格的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • JS实现字符串翻转的方法分析

    JS实现字符串翻转的方法分析

    这篇文章主要介绍了JS实现字符串翻转的方法,结合实例形式分析了javascript字符串使用reverse方法、字符串遍历方法以及针对输入字符串的遍历、逆序输出等方法实现字符串反转相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • JavaScript 中的输出数据多种方式

    JavaScript 中的输出数据多种方式

    在 JavaScript 中,不像 Java 等语言,它没有任何打印或者输出方法的,在js中通过使用4种方式来输出数据,本文通过实例代码给大家详细介绍,感兴趣的朋友跟随小编一起看看吧
    2022-03-03
  • 一文带你掌握JavaScript中的箭头函数

    一文带你掌握JavaScript中的箭头函数

    在JavaScript中,箭头函数是一种简化的函数语法,它在ES6(ECMAScript 2015)引入,本文就来和大家深入讲讲JavaScript中的箭头函数的使用吧
    2023-05-05
  • JS多个异步请求 按顺序执行next实现解析

    JS多个异步请求 按顺序执行next实现解析

    这篇文章主要介绍了js多个异步请求 按顺序执行next实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • js实现简单抽奖小功能

    js实现简单抽奖小功能

    这篇文章主要为大家详细介绍了js实现简单抽奖小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论