首先自定义一个类,来作为非法词汇的过滤器
复制代码 代码如下:
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文件中,添加如下代码:
[code]
public void Application_BeginRequest(){
Response.Filter = new ResponseFilter(Response.Filter);
}
OK,测试一下吧!
您可能感兴趣的文章:
- asp.net MVC利用ActionFilterAttribute过滤关键字的方法
- ASP.NET过滤类SqlFilter,防止SQL注入
- ASP.NET过滤HTML标签只保留换行与空格的方法
- ASP.NET过滤HTML字符串方法总结
- ASP.NET过滤器的应用方法介绍
- ASP.NET中的URL过滤实现代码
- Asp.net之数据过滤浅析
- asp.NET 脏字过滤算法 修改版
- asp.NET 脏字过滤算法
- asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
- asp.net 过滤图片标签的正则
- ASP.NET环境下为网站增加IP过滤功能
- asp.net 生成静态时的过滤viewstate的实现方法
- asp.net MVC利用自定义ModelBinder过滤关键字的方法(附demo源码下载)
转载请注明出处:http://www.qdlinkfox.com/article/20230327/200158.html