[转]截获asp.net http输出流自己做处理
Asp.net2.0 中自定义过滤器对Response内容进行处理
2007-11-5 因项目需要,对每一个访问网站的请求要做原始数据记录,其中要包括几个要素: 在代码设计前分析了一下,前三个都很好解决,对于截获服务器返回的正文,准备用HttpResponse 对象中的Output 和 OutputStream 属性输出信息来解决。 可是在正式编码的过程中,发现Output和OutputStream 并不是想像中可以直接把数据转出取回,耗费了近两天的时间,想尽了一切办法可还是仅仅可以追加内容并无法读取。 在网上查阅到,对于HttpResponse 对象,仅仅可以使用过滤器来对其中将要输出的内容进行修改。 现在有信心来截获服务器返回内容了,说干就干吧! 1.首先要建立一个简易过滤器。 /** public RawDataEventArgs(string SourceCode) //自定义过滤器 Stream responseStream; /** public RawFilter(Stream inputStream) //实现Stream 虚方法 public override bool CanRead public override bool CanSeek public override bool CanWrite public override void Flush() public override long Length public override long Position public override int Read(byte[] buffer, int offset, int count) public override long Seek(long offset, SeekOrigin origin) public override void SetLength(long length) //关键的点,在HttpResponse 输入内容的时候,一定会调用此方法输入数据,所以要在此方法内截获数据 //采用正则,检查输入的是否有页面结束符 if (!eof.IsMatch(strBuffer)) //激发数据已经获取事件 //继续传递要发出的内容写入流 responseStream.Write(data, 0, data.Length); using System; public class HttpRawDataModule : IHttpModule public void Dispose() } public void Init(HttpApplication context) #endregion /** //这里需要针对ASPX页面进行拦截,测试发现如果不这么做,Wap 访问站点图片容易显示为X,奇怪 //绑定过滤器事件 /** HttpModule 准备完毕,也装配上了过滤器,接下来还需要在配置文件中配置HttpModules配置节 ,把自定义的HttpModule 加入到HTTP处理管道中。 测试成功,能准确的获得服务器向客户端输出的HTML内容。 其中,在过滤器中,可以直接对即将要输出的内容做 对于字符串的任意处理。 而且采用这样的方式来对站点即将输出的内容做修改和采集,可以通过修改配置文件,随时打开和关闭,有很强的优越性和灵活性还有重用性。 记得看到过很多需要产生静态页面的网站,都是通过代码HttpWebRequest 向自己请求并记录返回的代码产生静态页面,不知道我当前介绍的方法是否更好写,比如需要产生静态页面时,不管是谁发出请求,由服务器检查自己是否有静态页面,否则产生静态页面,并转向。给出引子,希望大家还是自己开阔思路比较好。 这里我还想到一个额外的使用场景,比如入侵到一台支撑IIS 的服务器,上传自定义的过滤器和自定义的HttpModule 库,修改对方站点内的配置文件使之生效,就可以轻松做到窃取客户端输入内容和输出内容。不过修改配置文件不知道会不会让人容易发觉呀??? |
转载于:https://www.cnblogs.com/DrWang/archive/2011/04/15/2016797.html
[转]截获asp.net http输出流自己做处理相关推荐
- iis10 asp 如何连接mdb_如何做一个2000年风格复古的个人网站(4)留言板保存留言功能...
表设计 我们使用 Access 2000 做为我们的数据库.Office 2000 安装过程就不表了. 打开 Access 2000,新建空数据库,存放在 D:websiteguestbook 目录下 ...
- ASP.NET Core使用Hangfire做定时任务
1.新建 ASP.NET Core项目,使用管理NuGet程序包添加Hangfire,然后ASP.NET Core Startup 类中添加如下代码 using Microsoft.AspNetCor ...
- OnePiece 之 Asp.Net 菜鸟也来做开发(二)
写给不想看我YY的人 本人为了增加本系列文章的可读性,以及加强我本来就很弱很弱的想象力,以及增加写作的乐趣,甚至出于个人爱好--等等原因,在文中加入了许多搞笑以及YY的元素,如果您觉得这些都有碍您观看 ...
- ASP.NET超凡的代码控制
crystal译··yesky 适应性 肯定的是,通常任何一个全新的技术,在市场渗透都会花费一些时间.微软正在开始让ASP和IIS平台通过行业验证,以便让其作为其它网络服务器之外可以供选择的平台 对于 ...
- 转:ASP.NET程序中常用小技巧
登录: private void btnLogin_Click(object sender, System.EventArgs e) { try { string sqls ...
- 深度解析ASP.NET2.0中的Callback机制
callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了.但是想要真正用好.用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制 ...
- ASP.NET 开发知识小结
做了几年的ASP.NET,积累了不少小技巧.但是技巧只适合于特定的环境,还不如加强对基础知识的理解与运用.下面是我的一点体会,与大家分享. 1 母版页 这个控件可以使我忘记html的iframe之类的 ...
- 没完没了的Cookie,读懂asp.net,asp等web编程中的cookies
在我刚学会一点asp编程时就知道cookie了,当时照着书上的代码一通输入运行后,一切OK,就这样我自以为掌握了cookie,学javascript照样是一通代码运行成功,cookie到此为止应该是山 ...
- ZedGraph在Asp.net中的应用
由于项目的需求图表显示数据,今天在网上找了一天,终于找到一个不错的控件----ZedGraph,它支持asp,asp.net,vc. 现在最新的版本是5.0,些版本支持 .NET 2.0.5.0版 ...
- ASP.NET MVC 框架路线图更新 【转】
[原文地址]ASP.NET MVC Framework Road-Map Update [原文发表日期] Tuesday, February 12, 2008 1:05 PM 去年的十二月份,作为AS ...
最新文章
- RabbitMQ消息队列(二):”Hello, World“
- python语言支持函数式编程_python是函数式语言么
- ORACLE TEXT FILTER PREFERENCE(四)
- 《设计师要懂心理学》-第四章-人如何思考
- 中科大计算机本科毕业论文范文,中国科大本科生毕业论文管理再上新台阶
- 第四周课程总结&实验报告。
- v4l2-ctl 控制命令
- uniapp中引入colorUI
- 爬虫课第一次报错总结
- wince tcpmp移植相关
- 信息学奥赛一本通 提高篇
- 注塑车间维修师傅如何快速解决9种注塑机故障?
- 《密码编码学与网络安全》原理与实践笔记(一)
- :root选择器的妙用【2021.11.14】
- sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧
- 【BZOJ2286】【SDOI2011】消耗战 LCA单调性(构建虚树)+树形DP
- 电脑出现GRUB4DOS 0.4.5c、、、怎么办
- xp系统计算机蓝屏,xp蓝屏代码大全及解决方法
- 用python写atm自动取款_Python实现atm机的功能
- 广域网(PPP协议和HDLC协议)