一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 使用Response.Filter 過濾非法詞匯

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

2019-07-11 16:38ASP.NET之家 ASP.NET教程

一般信息發布網站,論壇等均具有實現非法詞匯過濾功能,即當用戶錄入非法詞匯時,進行替換,使其無法顯示到頁面上,針對此種功能,通常采用的時,在讀取時,在讀到非法詞匯后,進行替換。

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

首先自定義一個類,來作為非法詞匯的過濾器 

復制代碼代碼如下:


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,測試一下吧!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: freesex1718处xx | 男女激情视频1000辣妞范 | 91入口免费网站大全 | 亚洲欧美久久久久久久久久爽网站 | 亚州日韩精品AV片无码中文 | 日本一区二区三区久久 | 亚洲激情久久 | 亚洲国产精品第一区二区三区 | 星球大战成人h无删减版 | 亚洲乱码一二三四区国产 | 性做久久久久久 | 日本视频中文字幕 | 亚洲 色 欧美 爱 视频 日韩 | 色欧美在线 | 91大神在线精品视频一区 | 三级视频中文字幕 | 日本在线观看www | 精品一区二区高清在线观看 | 精品午夜久久网成年网 | 国产欧美成人不卡视频 | 五月婷婷丁香在线视频 | 亚洲日本中文字幕在线2022 | 性欧美videosex18嫩| 亚洲国产精品一区二区首页 | 日韩精品视频在线播放 | 色老板在线免费观看 | 双子母性本能在线观看 | 特黄特色大片免费影院 | 思思99热久久精品在2019线 | 亚洲精品中文字幕久久久久久 | 爱情岛论坛亚洲品质自拍视频 | 天天操天天爽天天射 | 免费特黄一区二区三区视频一 | 日本动漫打扑克动画片樱花动漫 | 99av导航 | 日本中文字幕黑人借宿影片 | 能播放的欧美同性videos | 乖女的嫩奶水h文孕妇 | 睡男神的这件小事小说在线阅读 | 性关系免费视频 | 9420高清完整版在线观看国语 |