HTTP处理程序简介:
http://msdn.microsoft.com/zh-cn/library/ms227675(v=vs.80)
网站目录结构:
根目录:test
所有图片目录:/Test/UpImage/
防止直接访问Upimage下的图片
比如:http://localhost:6196/Test/UpImage/20120909085159467510.jpg
添加一个http处理程序,监视是否直接请求Upimage目录下的图片
添加步骤:
点击网站项目右键-->添加新项-->类-->提示xxxxxx->确定-->程序自动创建App_Code目录并把新建的http处理程序放到该目录中
在Web.config配置文件中注册
<system.web>
<add verb="*" path="Upimage/*.jpg" type="SurveillanceImageRequest" />
解释:verb:请求的方式 *表示所有请求
path:请求的路径
type:处理程序名称
当请求Upimage目录下的任意图片,都交给SurveillanceImageRequest处理程序进行处理.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// 监视请求是否直接访问Upimage目录下的文件
/// 1:继承IHttpHandler接口
/// 实现接口中的方法
/// </summary>
public class SurveillanceImageRequest:IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
/// <summary>
/// 处理请求
/// </summary>
/// <param name="context">参数HttpContext封装了请求和响应</param>
public void ProcessRequest(HttpContext context)
{
//Response:响应
//Write("响应给浏览器的内容")
context.Response.Write("<script>alert('非法请求');location.href='跳转地址';</script>");
}
}
注意:如果在一个类库项目里添加了http处理程序,需要添加System.Web.dll程序集的引用,
没有这个引用就不能使用,IHttpHandler和HttpContext之类的类型。