background image

一个较完整的关键字过滤解决方案

(中)

问题远没结束

  上面的问题解决了没有?哦哦,我是指采取命名约定的方式来改变过滤行为。当然有问

题,不过我这里提一下比较重要的两个:

——

  首先,就是 改名 这种行为

究竟是否方便?还记得我们的需求吗(提示一下:方

……

便、通用

)?如果采取上面的命名约定方案,我们可能就需要在页面的前端和

后端都不断地改名,一会儿加

-noffw,一会儿加-json。如果项目只由您来负责这还

好办,只是麻烦一些,但是如果您的团队中的前台开发人员性格古怪,固执己见,

不愿配合怎么办(打架我喜欢,可惜不能直接解决问题)?再者,假如您除了一个

FilterForbiddenWordModule

之外还有类似的

FilterScriptInjectionModule”

怎么办(别真写这么一个

HttpModule,不合适,老赵只是想不出一个恰当的例子

了)?如果两个

Module 都采取命名约定的方式,那么如何制定一个两者能同时认

同的约定就也是个麻烦事。

  再者,命名真是我们可以控制的吗?某些情况下好说,但是假如您在使用

WebForms

中的控件怎么办?

WebForm 中的一个重要特性就是用过 Naming Container 来

避免客户端

ID 的冲突。假设我们的页面是放在一个 Master Page 中 ID 为 Main 的

ContentPlaceHolder 中,那么 ID 为 txtPassword 的文本框在客户端里生成的

HTML

——

便会如下所示

那么我们又能有什么办法可以做到 命名约定 吗?