最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

asp.net 使用Response.Filter 過濾非法詞匯

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:43:28
文檔

asp.net 使用Response.Filter 過濾非法詞匯

asp.net 使用Response.Filter 過濾非法詞匯:另一種解決方案是在輸出時(shí)過濾掉非常詞匯,優(yōu)點(diǎn)是只要寫一次就好了,可以過濾整站的非法詞匯,缺點(diǎn)是,非法詞匯仍然存入到了數(shù)據(jù)庫中,呵呵,大家可以有針對性的選擇,本例用的是后者,起因在于當(dāng)初沒有做此功能,后來需要添加,這時(shí)又不想改原來代碼,所以就
推薦度:
導(dǎo)讀asp.net 使用Response.Filter 過濾非法詞匯:另一種解決方案是在輸出時(shí)過濾掉非常詞匯,優(yōu)點(diǎn)是只要寫一次就好了,可以過濾整站的非法詞匯,缺點(diǎn)是,非法詞匯仍然存入到了數(shù)據(jù)庫中,呵呵,大家可以有針對性的選擇,本例用的是后者,起因在于當(dāng)初沒有做此功能,后來需要添加,這時(shí)又不想改原來代碼,所以就

另一種解決方案是在輸出時(shí)過濾掉非常詞匯,優(yōu)點(diǎn)是只要寫一次就好了,可以過濾整站的非法詞匯,缺點(diǎn)是,非法詞匯仍然存入到了數(shù)據(jù)庫中,呵呵,大家可以有針對性的選擇,本例用的是后者,起因在于當(dāng)初沒有做此功能,后來需要添加,這時(shí)又不想改原來代碼,所以就想了這個(gè)辦法,主要是采用了HttpResponse.Filter屬性來處理。具體代碼如下:

首先自定義一個(gè)類,來作為非法詞匯的過濾器
代碼如下:


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ù)庫或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,測試一下吧!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

asp.net 使用Response.Filter 過濾非法詞匯

asp.net 使用Response.Filter 過濾非法詞匯:另一種解決方案是在輸出時(shí)過濾掉非常詞匯,優(yōu)點(diǎn)是只要寫一次就好了,可以過濾整站的非法詞匯,缺點(diǎn)是,非法詞匯仍然存入到了數(shù)據(jù)庫中,呵呵,大家可以有針對性的選擇,本例用的是后者,起因在于當(dāng)初沒有做此功能,后來需要添加,這時(shí)又不想改原來代碼,所以就
推薦度:
標(biāo)簽: 過濾 使用 敏感
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top