如何在HTTPModule中关闭HTML标签之前注入HTML
本文关键字:HTML 标签 注入 HTTPModule | 更新日期: 2023-09-27 18:19:15
我试图在响应中注入一些额外的标记,但它没有按预期输出。
例如,下面的代码将输出:... </html>CONTENT
private void OnEndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("CONTENT");
}
但是我想在结束html标签
之前输出内容... CONTENT</html>
对如何实现这一点有什么想法吗?
您应该使用HttpContext.Response.Filter
。
查看此MSDN文档页面:
- http://msdn.microsoft.com/en-us/library/system.web.httpresponse.filter.aspx
这篇很老的文章也应该澄清这一点:
- http://ondotnet.com/pub/a/dotnet/2003/10/20/httpfilter.html
总而言之,你需要创建一个流实现来包装原来的HttpContext.Current.Response.Filter
。
为了在文档的某些部分注入HTML,您只需要将字节转换为字符串并使用String.IndexOf
或正则表达式来确定您是否在整个代码行中。
之后,只需连接,修改或替换获得的字符串,并将其放入原始默认响应过滤器中的包装流中。