首先自定义一个类,来作为非法词汇的过滤器 using System; using System.Text; using System.IO; public class ResponseFilter : Stream { #region properties Stream responseStream; long position; StringBuilder html = new StringBuilder(); #endregion #region constructor public ResponseFilter(Stream inputStream) { responseStream = inputStream; } #endregion #region implemented abstract members public override bool CanRead { get { return true; } } public override bool CanSeek { get { return true; } } public override bool CanWrite { get { return true; } } public override void Close() { responseStream.Close(); } public override void Flush() { responseStream.Flush(); } public override long Length { get { return 0; } } public override long Position { get { return position; } set { position = value; } } public override long Seek(long offset, System.IO.SeekOrigin direction) { return responseStream.Seek(offset, direction); } public override void SetLength(long length) { responseStream.SetLength(length); } public override int Read(byte[] buffer, int offset, int count) { return responseStream.Read(buffer, offset, count); } #endregion #region write method public override void Write(byte[] buffer, int offset, int count) { string sBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count); //得到非法词汇列表,这个可以在数据库或Web.Config中读取出来 string pattern = @"(非法词汇1|非法词汇2|非法词汇3)"; string[] s = pattern.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); foreach (string s1 in s) { sBuffer = sBuffer.Replace(s1, "**"); } byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(sBuffer); responseStream.Write(data, 0, data.Length); } #endregion } 然后再Global.asax文件中,添加如下代码: //这个适合多个页一次过处理 public void Application_BeginRequest() { string path = HttpContext.Current.Request.Path.ToLower(); string[] paths = new string[] { "/aa/","/bb/" }; foreach (string item in paths) { if (path.StartsWith(item)) { Response.Filter = new ResponseFilter(Response.Filter); break; } } } 或者重写某页的Render方法 protected override void Render(HtmlTextWriter writer) { StringWriter strWriter = new StringWriter(); base.Render(new HtmlTextWriter(strWriter)); string html = strWriter.ToString(); html = Util.ReplaceInvalidKeyword(html); writer.Write(html); }