拦截正在写入HttpResponse.OutputStream的内容

时间:2010-02-17 16:22:41

标签: .net asp.net iis-7

我正在开发一种审核对现有Web应用程序的访问权限的工具。现有应用程序没有任何挂钩,但我的计划是通过修改web.config注入IHttpModule并记录EndRequest事件期间需要记录的任何内容。

我现在正在努力的是:我无法拦截什么是应用程序写入输出流。我需要知道应用程序发送给客户端的输出。最初,我希望我可以在BeginRequest中运行代码,用我自己的流替换HttpContext.Response.OutputStream,在EndRequest期间会将其刷新为原始流,但流只有get {1}}访问者,所以我无法替换它。

我当然可以使用反射分配给HttpContext的私人成员。

这里的任何人都可以想到一个更好的方法来开发写入给定流的内容吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

有关如何实施响应过滤器的示例,请参阅此文章:http://aspnetresources.com/articles/HttpFilters.aspx