您的位置:首页 > 理论基础 > 计算机网络

整理: ASP.NET防盗链IHttpHandler源码如何做的?

2008-01-12 10:10 387 查看
解决方法:
(一)创建一个继承了System.Web.IHttpHandler接口的类
在System.Web.IHttpHandler接口有两个成员ProcessRequest()方法和IsReusable()属性。ProcessRequest(System.Web.HttpContext context) 方法,除了用户自定义中被要求处理的特殊的http请求。其中的参数 System.Web.HttpContext 类的实例装入了一个http请求中http协议中要求的所有信息。其中System.Web.HttpContext 类中包含有属性 Request 使得从客户端发送过来的http请求信息的值可以被方便地读取;属性Response 它封装了需要返回给客户端的信息和操作。
IsReusable()属性要置为true.

(二) 创建一个资源图片的方法Real()
1.若是盗链服务器给其错误图片。
2.若不是盗链服务器给其正常的图片。
在Real()方法中用到了FileInfo 这个类去取得图片的扩展名并用来判断图片的类型.

(三) 注意页面的缓存(response.Expires=1;获取和设置浏览器上缓存的页过期之前的分钟数.如果用户在页过期之前返回同一页,则显示缓存的内容)

(四)配置应用程序扩展名映射
因为IIS在接收到aspx页面请求时,会为其自动加载一个C:/WINDOWS/Micosoft.NET/Framework/v1.1.4322
/aspnet_isapi.dll文件。
虚拟目录和文件夹的属性里面的”执行许可”改为“纯脚本”。
若是有多个Web.config那么只要在总目录下有就可以了,其它地方的均可删除。
(五)在 Web.config这个网络应用程序配置文件中加入注册信息
<system.web>
<httpHandlers>
<add verb = "*" path = "*.jpg/.ief/.jpg/.jepg/.bmp/.png/.tif/.emf/.ras/.pnm/.pbm/.pgm
/.ppm/.rgb/.xbm/.xpm/.xwd/.did/.ico/.emf"type="HandlerExample.HttphandlerTest,HandlerExample"/>
.
.
</httpHandlers>
</system.web>/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: