在ASP.NET中使用多个响应过滤器

时间:2010-11-15 09:49:31

标签: asp.net filter httpresponse

有没有办法在ASP.NET中使用多个响应过滤器?

HttpContext.Current.Response.Filter = MyFilter1
HttpContext.Current.Response.Filter = MyFilter2

这段代码很清楚,无法正常工作。它使用新实例覆盖当前过滤器。

那么,这个场景的最佳实践是什么。

感谢和最好的问候。

2 个答案:

答案 0 :(得分:2)

过滤器是写入另一个Stream的Stream。通常你构建一个这样的过滤器:

response.Filter = new MyStream(response.Filter);

要使用多个过滤器,您可以这样做:

response.Filter = new FirstFilterStream(response.Filter);
response.Filter = new SecondFilterStream(response.Filter);

答案 1 :(得分:1)

只能应用一个响应过滤器,因此您需要汇总此过滤器中的所有工作。 Here's an example如何实现这一目标:

Response.Filter = new TrimStream(new CompressStream(Response.Filter));

这样您就可以组合多个流。