asp.net HttpHandler实现图片防盗链
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; }
}
}
}
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,诸位可以按步骤自行测试一下,这里就不赘述了。
相关推荐
-
Asp.Net HttpHandler 妙用
如:输出xmlDom,注销并跳转,并没有什么html的输出,很是麻烦,需要新建一个页,删除多余的html,并在page_load里面写处理代码.而使用HttpHandler就不需要这么麻烦了.可以用任何符合公共语言规范 (CLS) 的语言编写自定义 HTTP 处理程序来处理特定的.预定义类型的 HTTP 请求.响应这些特定请求的是在 HttpHandler 类中定义的可执行代码,而不是常规的 ASP 或 ASP.NET Web 页.HTTP 处理程序向您提供一种方法,使您可以与 IIS Web
-
asp.net HttpHandler操作Session的函数代码
复制代码 代码如下: using System; using System.Web; using System.Web.SessionState; public class HandleDataRequst : IHttpHandler, IRequiresSessionState { public void ProcessRequest (HttpContext context) { //context.Session["name"] } 这里的重点是一定要实现IRequiresSe
-
asp.net 请求输入到输出的全过程及httpHandler和httpModuler详细介绍
最近看了几篇讲述httpHandler和HttpModuler的文章,总的来说还是Fish li的那篇文章给力,但是他是大牛,他写出来的文章技术含量太高,对于像我这样的小兵, 要完全看懂估计需要看几遍.虽然说没有完全了解底层操作,但是我也算明白了一个请求从进入IIS到最后输出都经历了哪些过程.说实话,原来我以为.Net的类的子 类都是设计者自己设计的,没有考虑到真正的程序员是否可以完全掌握.了解了底层操作,我发现我的那个观点是多么的无知,每个.Net的类都是对应现实中的一种对 象,比如说Mvc3
-
asp.net下结合HttpHandler实现图片防盗链
复制代码 代码如下: #region IHttpHandler 成员 bool IHttpHandler.IsReusable { get { return true; } } void IHttpHandler.ProcessRequest(HttpContext context) { string FileName = context.Server.MapPath(context.Request.FilePath); if (context.Request.UrlReferrer.Host
-
asp.net HttpHandler实现图片防盗链
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(c
-
asp.net中利用ashx实现图片防盗链代码
GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.svnhost.cn/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727
-
asp.net中利用ashx实现图片防盗链的原理分析
直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.jb51.net/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET
-
php实现博客,论坛图片防盗链的方法
本文实例讲述了php实现博客,论坛图片防盗链的方法.分享给大家供大家参考,具体如下: 防盗链的方式很多,我这里就说说我对放盗链的理解,这个跟防止远程提交是一个原理. 先介绍一个函数 uniqid(string); //这个函数的作用,是在你添加的字符串后面随即添加一个独一无二ID字符串. 如果你还不放心,你可以给这个函输出的字符串再用SHA1()函数进行加密. 这样我们得到了一个独一无二,且只有你自己知道的字符串,用来做数字签证.接下来是如何检测这个数字签证. function has($str
-
php实现的网络相册图片防盗链完美破解方法
本文实例讲述了php实现的网络相册图片防盗链完美破解方法.分享给大家供大家参考.具体如下: 网络相册图片防盗链破解程序 - PHP版 这个防盗链破解版可以完美破解当下比较流行的: 百度相册,网易相册,360我喜欢等网站图片. 还可以实现简单的图片防盗链. 因为这个类是先进行获取远程图片, 然后再把图片发送到客户端,所以,算是进行了两次流量的传送.因此,会浪费空间流量,接下来,会开发缓存功能,这样可以实现节约流量! <?php /** * 网络相册图片防盗链破解程序 - PHP版 * * 使用方法
-
用Asp隐藏文件路径,实现防盗链 的代码
用Asp隐藏文件路径,实现防盗链 如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用Asp来隐藏文件的实际下载路径. 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把
-
IIS图片防盗链和下载的解决方案
在要启用Rewrite的IIS站点的Isapi上添加这个筛选器 筛选器名称Rewrite 可执行文件选择 c:\Rewrite\Rewrite.dll 即可以了 httpd.ini是配置文件 图片防盗链代码 复制代码 代码如下: [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors files # from accessing th
-
使用.htaccess设置图片防盗链的详细方法
真正有用的.htaccess写法为 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !jb51.net [NC] RewriteCond %{HTTP_REFERER} !youdao.com [NC] RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC] RewriteCond %{HTTP_REFERER} !twitter.com [NC
-
Referer原理与图片防盗链实现方法详解
本文实例讲述了Referer原理与图片防盗链实现方法.分享给大家供大家参考,具体如下: 1.图片防盗链 在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误. 简单代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="
随机推荐
- vbs整人代码大集合 多年的代码收集
- 利用ASP.NET MVC+Bootstrap搭建个人博客之修复UEditor编辑时Bug(四)
- 使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果
- Windows server利用批处理脚本判断端口启动tomcat的方法
- JAVA线程sleep()和wait()详解及实例
- 浅析IOS中播放gif动态图的方法
- Web.Config文件配置之限制上传文件大小和时间的属性配置
- ThinkPHP CURD方法之order方法详解
- 计算两个时间之差的函数
- MongoDB学习笔记(二) 通过samus驱动实现基本数据操作
- MySQL ORDER BY 的实现分析
- jQuery实现首页顶部可伸缩广告特效代码
- JavaScript基础语法、dom操作树及document对象
- Javascript实现Array和String互转换的方法
- 学习二维动态数组指针做矩阵运算的方法
- Android 几种屏幕间跳转的跳转Intent Bundle
- C#中的值传递和引用传递详细解析
- C#播放铃声最简单实现方法
- 无线局域网应用解惑大本营
- VBS基础篇 - vbscript Dictionary对象