这个东西的原理之类的就不讲呢咯,太笼统,做几个实例设断点走一遍再看看ASP.NET的运行机制图就了解呢咯.

   新建一个一般处理文件Handler.ashx然后再里面写入

ihttphandlerpublic class Handler : IHttpHandler
}

然后在web.config文件下的节点下填加 ihttphandler<add verb="*" path="*.jpg" type="Handler"/>

这样一来一个图片防盗连的程序就做好了,原理是当用户比如在浏览器URL里输入http://laohekou.net/images/20077315391029510.jpg,就会先进入web.config里,节点下,发现有一个处理文件是过滤.jpg文件的就会进入到Handler这个类型中去,就是Handler.ashx这个文件,然后就会执行里面的代码,当发现如果浏览器里的URL域名不是ConfigurationManager.AppSettings["url"].ToString();里指定的就会显示image_error.jpg这个图片,而非是20077315391029510.jpg这个图片,其中verb是指拦截的请求动作类型,比如可以写是GET,POST,而path是指引发这个事件的文件目录和文件类型,比如我如果写path="images/*.jpg",那么我引用非images文件夹的图片不会引起这个处理程序,或者我引用非.jpg的文件也不会引起处理程序

再举个例子感受下,比如现在我要做个资源下载的站点但是要做等级限制,那肯定不能允许用户通过http://laohekou.net/demo.rar这种方式下载,同以上的原理,我们要先做拦截然后再在程序里处理

新建一个处理程序HandlerFile.ashx,然后再其中写到如果进行http://laohekou.net/demo.rar这样的下载操作跳转到default.aspx 页面

 

ihttphandlerpublic class HandlerFile : IHttpHandler
}

然后再到web.config文件下的节点下填加ihttphandler<add verb="*" path="Soft/*.*" type="HandlerFile"/>

什么意思呢?就是说如果有请求到Soft文件夹下的操作,无论什么类型的文件都会进入HandlerFile处理程序中去,我们在程序中写所有过来的请求都给跳转到Default.aspx页面,这样做就防止下载了, 然后我们可以自己写下载的事件,如下:

 

ihttphandler    public void DownLoads(string fileName)
    }

相关文章:

  • 2021-07-14
  • 2022-12-23
  • 2021-04-21
  • 2021-08-07
  • 2021-12-09
  • 2021-07-03
  • 2021-07-18
  • 2022-12-23
猜你喜欢
  • 2021-06-22
  • 2021-04-19
  • 2021-12-26
  • 2022-03-02
  • 2022-02-20
  • 2021-08-03
  • 2021-09-22
相关资源
相似解决方案