2011-12-06 83 views
0

我正在使用CMS,并希望在输入保存到数据库之前去除管理员后端提交的所有控制字符(BEL,NUL,LF,FF)。每次在代码中进行保存时,不要调用一个方法来执行此操作,而只需要执行一次。.Net DbCommand消毒输入

我们通过一个包装DbCommand的类来完成所有数据库访问。我认为只需循环访问所有参数的值并调用控制字符的方法,以便在一个地方实现,并且开发人员不必记住将该方法用于新的数据保存代码。

我疯了吗?这可能吗?如果不是什么是最好的方法来解决这个问题?

回答

0

输入消毒是由IDbCommand实现完成的。如果您想对参数字符串值执行一些更多工作,为什么不实施decorator实现IDbCommand并在将执行方法委托给内部之前执行验证?

0

不知道你的设计,意图等等。

听起来不错。只需在循环中调用Regex.Replace()。你也可以把所有的字符。你想在一个表或配置文件中删除/替换,所以它们不是硬编码的并且容易更新。