最近做个图片防盗链的东西,遇到了些问题,特来请教
我配置好了IIS,设置对.jpg文件进行过滤
然后写了个dll里面继承至System.Web.IHttpHandler类,然后对ProcessRequest(HttpContext context)进行重写
具体是
public void ProcessRequest(HttpContext context)
{
if(context.Request.Url.Host.Equals //本地引用(context.Request.UrlReferrer.Host))
{
//处理....
}
else //如果非本地引用 {
context.Response.Expires = 0; //设置客户端缓冲中文件过期时间为0,即立即过期。
context.Response.Clear();//清空服务器端为此会话开辟的输出缓存
context.Response.Redirect("http://localhost/error.htm");
context.Response.End();//将服务器端为此会话开辟的输出缓存中的信息传送到客户端
}
}
然后webconfig加了个节点
<httpHandlers> <add verb="*" path="*.jpg" type="MyHttpHandler.MyHandler, MyHttpHandler" /> </httpHandlers>
但是我测试时发现如果非法访问图片虽然不会显示,但是不能按我设计的跳转到http://localhost/error.htm,只是个叉,不知道为什么,请各位高手指教,谢谢!
我配置好了IIS,设置对.jpg文件进行过滤
然后写了个dll里面继承至System.Web.IHttpHandler类,然后对ProcessRequest(HttpContext context)进行重写
具体是
public void ProcessRequest(HttpContext context)
{
if(context.Request.Url.Host.Equals //本地引用(context.Request.UrlReferrer.Host))
{
//处理....
}
else //如果非本地引用 {
context.Response.Expires = 0; //设置客户端缓冲中文件过期时间为0,即立即过期。
context.Response.Clear();//清空服务器端为此会话开辟的输出缓存
context.Response.Redirect("http://localhost/error.htm");
context.Response.End();//将服务器端为此会话开辟的输出缓存中的信息传送到客户端
}
}
然后webconfig加了个节点
<httpHandlers> <add verb="*" path="*.jpg" type="MyHttpHandler.MyHandler, MyHttpHandler" /> </httpHandlers>
但是我测试时发现如果非法访问图片虽然不会显示,但是不能按我设计的跳转到http://localhost/error.htm,只是个叉,不知道为什么,请各位高手指教,谢谢!
解决方案 »
- devexpress如何汉化?
- 有关于Global.asax 配置过滤?
- 请问framework1.1和2.0的区别?
- Iframe与Forms身份验证在页面上相互制约的问题
- html页面向cs中传数据困扰半天了,高手请进
- 帮忙,取FLASH的正则表达式。在线等。就这点分了。!!!!!
- 关于线程的问题
- 关于Crystal Report打印的问题,各位Crystal Report高手请进
- 如何在web.config里面里实现身份验证呢?请给我一个例子/?
- 在insert into 语句中怎样将Byte 数据插曲入库中?
- 我想把一个access表连到DataGrid,不写代码,只用拖放组件的形式(演示给别人看),步骤是什么啊?
- 请问sql语句中能否使用自定义的函数?
//本地引用关键的判断是这句啊
如果非本地引用就会被转入下面部分处理的图片发数据库处理太不现实了,我要防盗链的是大量的图片