2011-12-06 81 views
0

我正在使用CMS,並希望在輸入保存到數據庫之前去除管理員後端提交的所有控制字符(BEL,NUL,LF,FF)。每次在代碼中進行保存時,不要調用一個方法來執行此操作,而只需要執行一次。.Net DbCommand消毒輸入

我們通過一個包裝DbCommand的類來完成所有數據庫訪問。我認爲只需循環訪問所有參數的值並調用控制字符的方法,以便在一個地方實現,並且開發人員不必記住將該方法用於新的數據保存代碼。

我瘋了嗎?這可能嗎?如果不是什麼是最好的方法來解決這個問題?

回答

0

輸入消毒是由IDbCommand實現完成的。如果您想對參數字符串值執行一些更多工作,爲什麼不實施decorator實現IDbCommand並在將執行方法委託給內部之前執行驗證?

0

不知道你的設計,意圖等等。

聽起來不錯。只需在循環中調用Regex.Replace()。你也可以把所有的字符。你想在一個表或配置文件中刪除/替換,所以它們不是硬編碼的並且容易更新。