asp.net 使用Response.Filter 過(guò)濾非法詞匯
首先自定義一個(gè)類,來(lái)作為非法詞匯的過(guò)濾器
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);
//得到非法詞匯列表,這個(gè)可以在數(shù)據(jù)庫(kù)或Web.Config中讀取出來(lái)
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,測(cè)試一下吧!
- asp.net MVC利用ActionFilterAttribute過(guò)濾關(guān)鍵字的方法
- ASP.NET過(guò)濾類SqlFilter,防止SQL注入
- ASP.NET過(guò)濾HTML標(biāo)簽只保留換行與空格的方法
- ASP.NET過(guò)濾HTML字符串方法總結(jié)
- ASP.NET過(guò)濾器的應(yīng)用方法介紹
- ASP.NET中的URL過(guò)濾實(shí)現(xiàn)代碼
- Asp.net之?dāng)?shù)據(jù)過(guò)濾淺析
- asp.NET 臟字過(guò)濾算法 修改版
- asp.NET 臟字過(guò)濾算法
- asp.net 臟字典過(guò)濾問(wèn)題 用正則表達(dá)式來(lái)過(guò)濾臟數(shù)據(jù)
- asp.net 過(guò)濾圖片標(biāo)簽的正則
- ASP.NET環(huán)境下為網(wǎng)站增加IP過(guò)濾功能
- asp.net 生成靜態(tài)時(shí)的過(guò)濾viewstate的實(shí)現(xiàn)方法
- asp.net MVC利用自定義ModelBinder過(guò)濾關(guān)鍵字的方法(附demo源碼下載)
相關(guān)文章
Asp .net 調(diào)用帶參數(shù)的存儲(chǔ)過(guò)程
本文主要介紹了Asp .net 調(diào)用帶參數(shù)的存儲(chǔ)過(guò)程的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03asp.net安全、實(shí)用、簡(jiǎn)單的大容量存儲(chǔ)過(guò)程分頁(yè)
昨晚研究到2點(diǎn)多,對(duì)網(wǎng)絡(luò)上主流的分頁(yè)存儲(chǔ)過(guò)程大體看了一遍,但對(duì)安全以及如何使用很多文章都沒(méi)有過(guò)多的提及,而我要在這些文章的基礎(chǔ)上總結(jié)出一個(gè)比較實(shí)用的分頁(yè)存儲(chǔ)過(guò)程,方便大家在以后的項(xiàng)目中使用。2009-06-06使用DataGrid中擴(kuò)展ItemRenderer和HeaderRenderer進(jìn)行操作
這兩天在用Flex DataGrid做點(diǎn)東西,走了不少?gòu)澛罚F(xiàn)將心得分享一下。2009-02-02C#隨機(jī)生成不重復(fù)字符串的兩個(gè)不錯(cuò)方法
發(fā)現(xiàn)兩個(gè)隨機(jī)生成不重復(fù)字符串的方法,感覺(jué)還不錯(cuò),下面與大家分享下2014-05-05asp.net(c#)下各種進(jìn)制間的輕松轉(zhuǎn)換(2進(jìn)制、8進(jìn)制、10進(jìn)制、16進(jìn)制)
在.NET Framework中,System.Convert類中提供了較為全面的各種類型、數(shù)值之間的轉(zhuǎn)換功能。2010-10-10ASP.NET Session的七點(diǎn)認(rèn)識(shí)小結(jié)
ASP.NET Session的使用當(dāng)中我們會(huì)遇到很多的問(wèn)題,那么這里我們來(lái)談下經(jīng)常出現(xiàn)的一些常用ASP.NET Session的理解2011-07-07淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié)
這篇文章主要介紹了淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié),以便在實(shí)際的開(kāi)發(fā)中選用合適的控件進(jìn)行數(shù)據(jù)綁定,以提高開(kāi)發(fā)效率。2016-12-12asp.net下出現(xiàn)其中的組件“訪問(wèn)被拒絕”的解決方法
asp.net下出現(xiàn)其中的組件“訪問(wèn)被拒絕”的解決方法...2007-04-04