女士们先生们下午好——
我的任务是查找和修复一个不熟悉的遗留应用程序中的错误,该应用程序最近对其进行了一些更改,但我没有一种简单的方法(我知道)来测试我的理论。我希望您的集体知识将为我验证测试。
此应用程序将查找列表(绕口令?)DataTable
从数据库中延迟加载到 s 中,并将它们作为对象存储在HttpContext.Current.Application
(an HttpApplicationState
) 中。
在进行更改之前,其中一个查找表以DropDownList
下列方式(人为)绑定到 a:
Me._lookupList = TheSession.LookupCache.SomeLookupListName.DefaultView
...
ddl.DataSource = Me._lookupList
其中 'SomeLookupListName' 是一个只读属性,它返回一个DataTable
from HttpContext.Current.Application
。更改添加了一些代码,在绑定到 之前过滤私有Me._lookupList
( ) :DataView
DropDownList
Me._lookupList.RowFilter = "SomeTableIDColumn <> " & ...
如果您还没有猜到,正在发生的事情是,DataView
现在已针对应用程序的每个用户进行过滤。我查看了代码,发现大多数其他查找列表都以这种方式复制到本地成员:
Me._lookupList = New DataView(TheSession.LookupCache.SomeLookupListName)
由于我不知道如何伪装成多个用户来攻击我的本地调试会话,因此将代码更改为使用后一种方法实际上与前者有什么不同吗?DataTable.DefaultView
过滤实际将过滤器应用于底层的结果是否DataTable
与使用 包装表不同New DataView(...)
?
在绑定之后简单地清除行过滤器是否有意义DropDownList
(似乎是一个糟糕的解决方案)?我想坚持这个应用程序使用的丑陋的约定,这样我就不会让其他开发人员感到惊讶,他们会得到类似的任务,否则我会绕过应用程序状态并直接从数据存储库中获取项目.
感谢您的反馈。